스프링 부트 도커 파일 설정 ▼ 최상위 경로에 다음과 같이 docker 파일을 만들어줍니다. EXPOSE에 원하는 포트를 입력합니다. FROM - JDK를 설정합니다. ENV - 환경변수 설정를 설정합니다. WORKDIR - 환경변수를 경로로 지정합니다. COPY - 빌드된 jar 파일을 application.jar의 파일명으로 복사합니다. EXPOSE - 실행될 포트를 설정합니다. CMD - 명령어 옵션을 입력합니다. 빌드 및 컨테이너 실행 ▼ 프로젝트를 빌드하기 전에 gradlew 파일을 실행 가능하도록 권한을 변경합니다. ▼ gradlew를 이용해서 프로젝트를 빌드합니다. -x 옵션으로 test 프로젝트는 빌드하지 않습니다. ▼ 도커 이미지 생성을 위해서 빌드를 합니다. 임의로 my라는 이름을 주었..
평소에 소스 머지를 위해서 소스트리나 깃허브의 Github Desktop으로 작업을 합니다. Git에 특화되어 있고 인텔리제이에 비해서 다양한 언어로 된 IDE를 독립적으로 관리할 수 있기 때문이죠. 하지만 최근에 인텔리제이로 작업을 많이 하게 되면서 그런 툴들을 쓰는 것도 귀찮고 해서 직접 인텔리제이에서 머지(merge) 작업을 하는 방법을 알아보았습니다. 매우 간단하고 편리합니다. 인텔리제이 Merge Branch ▼ 메뉴바에서 Git 메뉴를 선택하고 하위 메뉴중에 Merge...를 선택합니다. ▼ 머지할 대상 브랜치를 선택합니다. (현재 브랜치는 master) ▼ 다양한 옵션을 선택할 수 있습니다. --no-ff : fast-foward 관계라 하더라도 강제로 merge commit을 생성하고 병합..
포스트맨을 사용하다보면 다음과 같은 에러가 뜰 수 있습니다. "Could not send request" CORS Error: The request has been blocked because of the CORS policy 이때 옆에 보면 Use Postman's Desktop Agent 라는 버튼을 볼 수 있는데요. 이 버튼을 눌르면 Desktop Agent 를 사용해서 CORS 문제를 해결할 수 있습니다. 단 Desktop Agent 를 설치해야 하는데요. 설치 방법은 간단합니다. 포스트맨 CORS 에러 한 가지 주의하실 점은 포스트맵 데스크탑용 프로그램이 아닌 에이전트라는 점 입니다. 포스트맨은 데스크탑용 어플리케이션을 사용하거나 웹 브라우저를 통해서 사용할 수 있는데요. 웹 브라이저에서 사용중..
코드 스니핏(Code Snippet) Snippet은 작은 조각이란 뜻으로 보통 프로그래밍 개발 시 미리 작성해 놓은 다양한 단축 구문을 모아놓은 템플릿이라고 할 수 있습니다. 이미 맥에도 유료나 무료의 다양한 Code Snippet 툴들이 존재합니다. 하지만 오늘 알아볼 Xcode의 Snippet은 기본 제공되며 체계적으로 코드를 저장한다면 강력한 개발 도구가 될 수 있을 것 같습니다. ▼ 단축키는 Command + Shift + L 입니다. 보통 스토리보드나 XIB에서 해당 단축키를 누르면 이미지 라이브러리가 노출됩니다. 일반 코드를 보고 있다가 단축키를 누르면 Snippet 라이브러리가 노출됩니다. ▼ 만약 다음과 같이 av라고 검색하면 API 버전을 체크하는 구문을 검색할 수 있습니다. 오른쪽 하..
오늘은 아이폰의 기본 중에 기본인 컬렉션 뷰를 사용하는 방법을 알아보겠습니다. 사실 예전에는 테이블 뷰를 많이 사용했습니다만, 현재는 테이블 뷰 보다는 컬렉션 뷰를 더 많이 사용하죠. 하지만 그냥 일반적인 리스트 화면을 만들때는 컬렉션 뷰 보다는 테이블 뷰가 간편할 때가 많습니다. 그 이유는 테이블 뷰를 사용하면 ColleciontView와 달리 FlowLayout 델리게이터 없이 편리하게 리스트를 구현할 수 있기 때문이죠. 오늘은 처음 컬렉션 뷰를 사용해서 아주 기본적인 레이아웃 설정을 하는 방법을 알아보겠습니다. 디자인 설정 ▼ 스토리보드에 UICollectionView를 드래그해서 올리고 오토레이아웃을 좌우상하단에 걸어줍니다. 그리고 delegate, dataSource를 뷰 컨트롤러에 연결해주면 ..
Spring Boot에서 JPA를 사용하면 다양한 데이터베이스를 연결할 수 있습니다. 평소 개발할 때는 H2로 연결해서 개발할 수도 있고 실제 배포에는 오라클이나 MySQL을 이용할 수도 있습니다. MySQL 커뮤니티 버전이 아닌 MariaDB 오픈소스도 MySQL과 사용법은 비슷하지만 JPA 연결 시 드라이버(driver) 설정이 다릅니다. 오늘은 각각 많이 사용하는 MySQL과 MariaDB의 연결 설정에 대해서 알아보겠습니다. MVN Repository 사용시 이미 만들어진 프로젝트에 드라이버와 JPA를 설치하려면 MVN 레파지토리 사이트에서 검색한 후에 그래들 파일에 추가하는 것이 편리합니다. ▼ 우선 https://mvnrepository.com 사이트에서 필요한 드라이버를 검색해보겠습니다. 검..
Lombok lombok은 Java의 라이브러리 중 하나로 반복되는 메서드를 자동으로 만들어주는 라이브 러리입니다. 엔티티나 DTO 같은 모델에서 Getter, Setter, 생성자를 만들 때 발생되는 귀찮은 작업을 모두 처리해줍니다. 하지만 테스트 환경에서는 Lombok을 사용할 수 없습니다. 그래서 그래들에 다음 코드를 추가한 뒤에 그래들을 다시 빌드합니다. ▼ 그래들에 해당 코드를 추가해줍니다. ▼ 아이콘을 눌러서 다시 빌드합니다.
인텔리제이를 사용해 스프링 프로젝트 작업을 할 때 Jar 파일을 만든 법은 아주 간단합니다. 별도로 java -jar 명령을 통해 실행시킬 수 있으며 인텔리제이에서 보던 로그도 동일하게 출력되는 것을 확인할 수 있습니다. 물론 브라우저에서도 동일하게 애플리케이션을 실행할 수 있습니다. 단지 실행에 문제가 있다면 프로젝트 개발에 사용되었던 JDK와 컴퓨터 실행환경의 JDK 버전이 달라서일 수 있습니다. 그럼 간단하게 JAR 파일을 만드는 법을 알아보겠습니다. ▼ 우측 상단에 그래들(Gradle) 탭을 열어줍니다. 그리고 bootJar라는 그래들 명령을 더블클릭해서 실행해줍니다. ▼ 빌드가 되는 것을 확인할 수 있습니다. Run 화면에서 Successful 이 뜨면 build 폴더를 확인합니다. ▼ 프로젝트..
기존에 오라클을 통해서 맥에 MySQL을 설치하는 방법을 알아봤습니다. 하지만 Homebrew를 통해서 설치하는 방법도 있어서 기록합니다. 설치가 더 간단하고 설정이 편하다는 장점이 있습니다. 맥을 사용하는 사람들은 아마 Homebrew에 대해서 들어보신 적이 있을 텐데요. Homebrew는 맥의 패키지 관리 툴입니다. 홈브루 확인 및 설치 ▼ Homebrew가 설치되어 있는지 확인합니다. ▼ 만약 homebrew가 설치되어 있지 않다면 아래 명령을 입력해서 Homebrew를 설치합니다. ▼ MySQL을 설치하기 전에 업데이트 명령을 해줍니다. MySQL 설치 ▼ brew search mysql 명령으로 mysql 관련된 레포지토리를 확인합니다. ▼ search 명령으로 검색해서 설치하거나 다음과 같이 ..
DDL (데이터 조작어, Data Manipulation Language) CREATE : 데이터베이스 생성 ALTER : 데이터베이스 변경 DROP : 데이터베이스 삭제 RENAME : 데이터베이스 이름 변경 COMMENT : 데이터베이스 주석 추가 TRUNCATE : 데이터베이스 데이터 전체 삭제 DML (데이터 정의어, Data Definition Language) INSERT : 데이터 추가 UPDATE : 데이터 수정 DELETE : 데이터 삭제 SELECT : 데이터 검색 MERGE : 데이터 추가 + 데이터 수정 CALL : PL/SQL 또는 JAVA 서브 프로그램 호출 EXPLAIN PLAN : 데이터 접근 경로 해석 LOCK TABLE : 동시성 제어 DCL (데이터 제어어, Data C..
데이터베이스 시스템은 DBMS와 데이터베이스가 핵심이 됩니다. 데이터베이스의 장단점을 잘 알고 장점을 잘 활용해서 시스템을 구성하고 설계를 할 필요가 있습니다. 또한 단점을 잘 이해하고 그로 인한 대비책을 마련하는게 좋습니다. 장점 데이터 종속성이 최소화된다. 데이터 중복성이 감소한다. 데이터 동시 공유가 가능하다. (동시성 제어 concurrency control) 데이터 일관성 유지가 쉽다. 데이터 무결성 유지가 쉽다. 데이터 보안이 향상된다. 표준화된 데이터 접근이 가능하다. 데이터 가용성이 향상된다. 응용 프로그램의 개발 비용이 감소한다. 단점 시스템 운영비용이 증가한다. 시스템 관리 부담이 높아진다. 시스템 취약성이 증가한다. 파일 정보 시스템에 비해서 여러가지 장점을 갖게됩니다. 단지 파일 시..
MySQL 커뮤니티 버전 MySQL은 세계에서 가장 많이 사용하는 오픈소스 RDBMS입니다. 1995년에 최초 개발되었으며 코드가 공개되어 있어 누구나 다운로드하여 사용할 수 있는 데이터베이스 관리 툴입니다. 무료에도 불구하고 처리 속도가 빠르고 설치가 쉽습니다. 대용랑 데이터 처리까지 가능하며 보통 소규모 조직에서 저비용으로 시스템을 구축할 때 적합한 DBMS입니다. 전세계적으로 1천만대 이상의 서버가 운영되고 있으며 오라클과 함께 가장 많이 사용되는 DB 중에 하나입니다. 다만 2010년에 오라클에 인수되었지만 현재도 오픈소스 정책은 유지되고 있으며 리눅스나 맥, 윈도우에서 모두 사용할 수 있고 다양한 프로그래밍 언어에서도 적용이 가능한 범용 데이터베이스입니다. MySQL 제품 분류 구분 제품명 특징..