SwiftyUserDefaults는 사용자 기본값을 쉽게 사용할 수 있는 오픈소스입니다. 키값을 한 곳에서 저장하고 관리할 수 있어서 편리합니다. UserDefaults 값은 사실 문자열로 관리하기 때문에 실수할 가능성도 높고 전역적으로 값을 관리하다 보면 실수할 가능성도 높습니다. 그래서 보통은 관련 매니저 클래스를 만들어서 한 곳에서 관리할 수 있게 하는게 보통입니다. 하지만 SwiftyUserDefaults 를 사용하면 조금 쉽게 모든 과정을 자동화 할 수 있습니다. 키 값 정의 ▼ 다음과 같이 키값은 기본 타입 또는 옵셔널 타입으로 지정할 수 있습니다. SwiftyUserDefaults 사용법 ▼ 사용법은 다음과 같습니다. ▼ 만약 스위프트 5.1 버전 이상을 사용한다면 다음 처럼 쉽게 접근이 ..
평소에 JetBrain사에 DataGrip IDE로 데이터베이스를 접속해서 관리하고 있습니다. 하지만 MySQL Workbench로도 작업을 하는 경우가 많이 있는데요. 오늘은 데이터베이스를 ERD 다이어그램으로 변경하는 방법을 알아보겠습니다. MySQL Workbench에 모델링(Modeling) 툴을 사용하면 테이블을 쉽게 관리할 수 있습니다. ERD 다이어그램 ERD (Entity Relationship Diagram) 이란 E-R 다이어그램이라고 하며 보통 ERD 라고 말합니다. ERD란 데이터베이스의 관계를 도표로 나타낸 것이라고 할 수 있는데요. 여러개의 테이블을 관리하다보면 단순히 코드로만 생각하기 어려울 때가 있습니다. 때문에 모델링 툴로 관계를 생각하면서 디자인을 할 수 있습니다. MyS..
스프링 부트란? 스프링부트(Spring Boot)는 자바 기반의 웹 어플리케이션 프레임워크인 스프링(Spring) 프레임워크 프로젝트를 좀 더 손쉽게 사용할 수 있도록 만든 도구라고 할 수 있습니다. 사실 웹 개발자가 아니라면 이전에는 스프링을 배우기가 굉장히 까다로웠습니다. 사실 자바 개발자들의 편의를 위해서 나온 프레임워크이긴 하지만 시간이 지날수록 다양한 기능과 설정들이 더해지면서 일반 개발자들이 접근하기는 러닝 커브가 꽤 있는 편이었죠. 하지만 지금은 스프링 부트 프로젝트로 인해서 많은 사람들이 스프링 부트로 개발을 하고 있습니다. 왜 스프링 부트인가? 국내 대부분의 대형 백엔드 프로젝트는 스프링(Spring)을 사용합니다. 자바스크립트(Javascript)나 파이썬(Python) 또는 루비(Ru..
IntelliJ 자동 import 인텔리제이에는 다양한 기능이 있습니다. 그중에 코드 완성이 정말 잘돼서 편리하죠. 아직 임포트 하지 않은 패키지가 있다면 엔터만 입력하면 자동으로 import 됩니다. 하지만 너무 과해서 필요 없는 패키지의 import를 유도할 때도 많습니다. 설정에서 간단히 수정해보도록 하겠습니다. ▼ 다음과 같이 자동완성이 될 때 현재 필요하지 않은 패키지 라이브러리가 자동 완성되지 않기를 원할 때가 있습니다. ▼ File(파일) -> Settings(설정) 메뉴로 이동합니다. ▼ Editor -> General -> Auto Import 메뉴로 이동합니다. 다음과 같은 화면에서 + 버튼을 눌러 새로운 조건을 추가할 수 있습니다. 다음 조건을 추가할 수 있습니다. (보통 패키지를 선..
Unresolved database references in annotations 설정 ▼ 인텔리제이(IntelliJ)를 사용해서 JPA를 쓰다보면 다음과 같이 Column 이나 테이블 명을 변경할 경우 텍스트에 경고표시를 볼 수 있습니다. 그냥 사용해도 빌드도 되고 문제는 없지만 조금 보기 좋게 출력하기 위해서 설정을 변경해 줄 수 있습니다. ▼ 다음과 같은 경로로 해당 옵션을 꺼줍니다. File > Settings > Editor > Inspections > JPA > Unresolved database reference in annotations ▼ 이렇게 옵션을 꺼주면 다음과 같이 해당 테이블 명이 녹색으로 잘 표시됩니다. 아주 간단한 것이지만 테이블 이름을 똑같이 쓰지 않을 경우 경고가 뜨는 것..
DataGrip 데이터베이스를 관리하기 위한 툴은 다양합니다. 그중에 IntellJ를 만든 젯 브레인에서 IntellJ와 유사한 인터페이스로 데이터 그립이라는 툴이 있습니다. MariaDB나 오라클 및 아주 다양한 DBMS를 지원합니다. 기타 MySQL 워크벤치나 데이터베이스 관리 툴에 비해 빠른 속도와 효율적으로 데이터를 검색할 수 있습니다. 인텔리 J나 안드로이드 스튜디오를 써보신 분은 알겠지만, JetBrain사의 툴은 코드 입력 시 다양하게 조합하여 기능을 구현할 수 있는데요. DataGrip도 인터페이스가 이와 유사해서 매우 편리하게 쿼리를 실행해 볼 수 있습니다. ER 다이어그램 보기 ▼ 데이터베이스 테이블을 더블클릭 하면 다음과 같이 데이터의 값과 항목들이 나타납니다. 현재 값이 없기 때문에..
이전 포스팅에 이어서 간단한 코틀린 문법을 전반적으로 알아보겠습니다. 코틀린은 현대적인 언어의 대부분의 장점을 가지고 있습니다. 그중에 타입추론과 타입체크가 편리하고 Nullable 을 도입함으로써 어플리케이션의 개발시 안정성이 높아졌습니다. 이번 포스팅에서는 코틀린이 가진 간단한 특징을 볼 수 있습니다. When 과 같은 구문은 스위치와 비슷하지만 훨씬 편리하고 다양하게 활용할 수 있어서 좋습니다. 기존의 자바보다 문자열 템플릿 또한 간결하고 활용범위가 넓습니다. 주석 ▼ 코틀린은 한 줄 주석과 블록 형태의 여러행 주석을 지원합니다. ▼ 블록 주석의 경우 안쪽에 또다른 주석을 넣을 수 있습니다. 문자열 템플릿 ▼ 문자열 안에서 ${} 구문을 통해 변수 또는 함수등을 사용할 수 있습니다. 조건문 ▼ 대부..
Kotlin, 코틀린은 매우 편리한 언어입니다. 예전에 비해서 많은 사람들이 사용하고 있고 특히 안드로이드 개발에 많이 사용되어집니다. 코틀린을 배우고 싶은 이유중에 하나는 최근에 스프링 부트를 개발하면서 코틀린으로 개발하는게 더 효율적인 것 같다는 생각과 어쩌면 앞으로는 자바 보다는 코틀린으로 개발하는 것이 더 트랜디한 방향으로 굳어질 것 같아서입니다. 또한 코틀린은 최근에 나온 대부분의 언어와 비슷하며 배우기도 쉽다고 생각됩니다. 오늘은 코틀린의 기본 문법에 대해서 알아보겠습니다. 패키지 정의 및 imports ▼ 패키지 정의와 imports 구문은 다음과 같이 소스 코드의 최상단에 기술합니다. 프로그램 시작점 ▼ 코틀린 애플리케이션의 시작점은 main 함수입니다. ▼ 배열 형태의 문자열을 인자로 받..
GitHub 토큰 로그인? 최근에 Github에 아이디 패스워드를 이용해서 로그인하려면 에러가 납니다. 이유를 찾아보니 최근에는 Access Token을 만들어서 토큰 인증 방식으로 로그인해야 한다고 합니다. Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead. Please see https://github.blog/2020-07-30-token-authentication-requirements-for-api-and-git-operations/ for more information. 저도 잘 모르고 있었는데 다음과 같은 제목의 만료 메일이 와서 로그인 토..
아이폰을 개발하다보면 스크롤 뷰를 많이 사용합니다. 제한된 영역에서 넓은 화면을 구현하기 위해서 입니다. 오토레이아웃을 사용할 경우 스크롤 뷰를 구현하기가 조금 까다롭습니다. Xcode가 버전업 되면서 현재는 ContentView와 FrameView에 오토레아이웃을 걸고 사용합니다. 하지만 SwiftUI 에서는 아주 쉽게 스크롤 뷰를 만들수 있습니다. 대신 조금 낮설긴합니다. GeometryReader를 이용해서 3개의 화면을 만들고 스크롤 뷰로 페이징하는 방법을 알아보겠습니다. 스크롤 뷰로 페이지 뷰 만들기 ▼ 아래 코드를 이용해서 페이징 처리가 가능합니다. colors 변수로 화면에 포함될 색상을 배열로 만듭니다. GeometryReader의 proxy 속성으로 각 화면의 화면 크기를 구합니다. .h..
MariaDB 관리 MariadDB 의 기초적인 사용자 관리와 간단한 SQL 구문을 이용해 데이터베이스 스키마와 테이블을 만들고 데이터를 삽입하는 법을 알아보겠습니다. ROOT 사용자 접속 MariadDB를 관리와 사용자를 만들고 제거하기 위해 root로 접근해야 합니다. 사용자 관리 루트 사용자로 접속하게되면 모든 설정을 수정하거나 사용자를 관리할 수 있지만 이는 보안적으로 결함이 되기도 합니다. 그래서 일반 사용자를 만들어 특정데이터에 접근을 사용자마다 제한을 두는 편이 좋습니다. 1) 사용자 생성과 권한 부여 (*는 전체를 나타냅니다.) sql > grant 권한종류 on 스키마이름.테이블이름 to 사용자이름@호스트 identified by '비밀번호'; 2) 사용자 삭제 sql > drop use..
package.json 파일에 실행 스크립트를 보면 다음과 같이 start, build, test, eject 4가지 명령이 있습니디. 일반적으로 start는 개발 모드 build는 배포용 빌드라고 알고 있습니다. 리액트(React) 에서 처음 공부할 때 중요하다고 생각되서 정리하는 차원에서 조금 더 자세히 차이점을 알아보고 실행하는 옵션들에 대해서 알아보겠습니다. (1) npm start 개발 모드로 프로그램을 실행하는 명령어 입니다. HMR(hot-module-replacement)가 동작해 수정과 동시에 화면이 변경됩니다. 개발 모드에서 코드에 에러거 있을 경우에는 브라우저에 메시지를 출력합니다. https 실행 옵션을 통해 https 인증서 없이 임시로 https 형태로 url을 만들 수 있습니다..