본문 바로가기

전체 글155

Kotlin in Action #1. 코틀린 시작하기 'Kotlin in Action' 책을 학습하고 정리한 내용입니다. 1. 코틀린 시작하기 코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다. 자바 코드와의 상호운용성이 가능하며 간결하고 실용적이다. 안드로이드 앱 뿐만 아니라 서버 개발에서도 사용 할 수 있다. 코틀린 코드 맛보기 이번 예제에서는 Person 클래스를 정의하고, 여러 Person을 모아둔 컬렉션을 만들어서 가장 나이가 많은 사람을 찾아 결과를 출력해보는 코드를 작성해본다. // Person 데이터 클래스 data class Person(val name: String, val age: Int ?= null) fun main(args: Array) { // Person 컬렉션 생성 val persons = listOf( Person.. 2020. 2. 17.
MySQL 그룹 함수 GROUP_CONCAT GROUP_CONCAT은 GROUPING된 레코드들을 원하는 구분자를 이용하여 문자열로 만들 수 있습니다. 아래 예제에서 사용된 데이터베이스 IDE는 CHEQUER에서 개발한 QueryPie 제품입니다. 예제 테이블 생성 스크립트 # 테이블 생성 CREATE TABLE TEST_TABLE ( NO INTEGER, ADDRESS VARCHAR(20) ); # 데이터 삽입 INSERT INTO TEST_TABLE values (1, '경기도'); INSERT INTO TEST_TABLE values (1, '성남시'); INSERT INTO TEST_TABLE values (1, '대왕판교로'); INSERT INTO TEST_TABLE values (2, '서울특별시'); INSERT INTO TEST_T.. 2020. 2. 5.
Oracle 테이블 통계 정보를 수집하는 명령어 gather_table_stats 프로시저 호출을 통해서 테이블, 컬럼, 인덱스 통계 정보를 수집할 수 있습니다. -- CTAS로 테이블 생성 select * from scott.emp; create table t_emp as select d.no, e.* from scott.emp e , (select rownum no from dual connect by level 2020. 2. 5.
Java GRPC Quick Start 이 글은 grpc 사이트 Quick Start 번역한 자료입니다. 원문은 https://grpc.io/docs/quickstart/java.html 에서 확인할 수 있습니다. Java GRPC Quick Start 이 가이드 문서는 간단한 예제를 이용해서 gRPC를 Java로 시작할 수 있도록 안내합니다. 시작하기 전 준비사항 JDK : 7 버전 또는 그 이상 예제 다운로드 Quick Start 문서에 내용을 수행하려면, 예제 코드의 복사본이 로컬에 있어야 합니다. Github 저장소로부터 예제 코드를 다운로드 합니다. (다음 명령은 전체 저장소를 복사하지만, 지금은 quickstart와 다른 튜토리얼을 위한 예제만 필요합니다) # 최근에 배포된 예제를 얻기 위해서는 다음 저장소를 복사합니다. git c.. 2020. 2. 5.
스프링 데이터 JPA와 Querydsl 인프런 강의 정리 김영한님이 강의하신 실전! Querydsl 강좌를 학습하고 정리한 내용입니다. 소스코드는 Github를 참고해주세요. 시작하기에 앞서 테스트용 MySQL 설치 및 Gradle 프로젝트에서 Querydsl 설정하는 방법에 대해 알아봅니다. Docker MySQL 설치 docker run -d --name test_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin007! mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci Gradle에서 Querydsl 설정 build.gradle 파일에 querydsl 설정을 추가한다. 설정을 추가하고 build 또는 compileQuerydsl을 .. 2020. 2. 3.
Mac 에서 VirtualBox 설치 실패 시 해결 방법 로컬에서 가상환경 구성해야 하는 일이 있어서 오랜만에 VirtualBox를 다운로드 받아서 설치하려는데 "설치에 실패했습니다" 문구가 표시되었다. 해결하는 방법은 간단했다. Mac 환경설정 > 보안 및 개인 정보 보호 탭으로 이동해서 "개발자 'Oracle America, Inc.'의 시스템 소프트웨어가 차단되어 로드할 수 없습니다" 문구 옆에 있는 허용 버튼을 눌러주면 된다. 허용 버튼을 누르고 다시 설치 시도를 하면 "성공적으로 설치되었습니다" 문구가 표시된다. 2020. 1. 28.
Oracle 순위를 반환하는 함수 (RANK, DENSE_RANK, ROW_NUMBER) 테이블에서 특정 값을 기준으로 순위를 매겨서 보고 싶을 때 ORDER BY 절을 사용합니다. 동일한 점수가 나온 경우 순위를 동일하게 하거나 또는 점수가 동일하더라도 순위를 다르게 매겨야 하는 경우가 있습니다. Oracle에서는 순위를 나타날 때 편하게 사용할 수 있도록 RANK, DENSE_RANK, ROW_NUMBER 함수를 제공합니다. 순위 함수 Oracle에서 제공하는 순위 함수는 아래와 같습니다. 해당 함수에 대한 설명보다는 실습을 통해 이해하는 것이 더 쉬울 수 있습니다. RANK : 동일한 값이면 중복 순위를 부여하고, 다음 순위는 해당 개수만큼 건너뛰고 반환한다. DENSE_RANK : 동일한 값이면 중복 순위를 부여하고, 다음 순위는 중복 순위와 상관없이 순차적으로 반환한다. ROW_NU.. 2020. 1. 23.
Github에서 Fork 한 저장소를 원본 저장소와 동기화 하는 방법 Github에서 특정 프로젝트를 Fork 하면, 원본 저장소를 자신의 저장소로 복사합니다. 이제 옮겨진 저장소에 기능을 추가하거나 내용을 수정하고 커밋을 하더라도 원본 저장소와 분리되어 있으므로 영향을 끼치지 않습니다. 어느 정도 시간을 흐르고 난 뒤, 다시 원본 저장소를 살펴보면 자신이 Fork 한 시점보다 커밋이 많이 되어 있는 것을 볼 수 있습니다. 물론 원본 저장소에서는 변경된 사항이 반영되어 있지만, Fork한 저장소는 해당 사항이 반영되어 있지 않습니다. 그래서 원본 저장소와 동기화 할 필요가 있습니다. 나중에 PR(Pull Request)를 할 때, Conflict를 줄일 수 있는 것뿐만 아니라 최신 변경된 사항을 바로 알 수 있기 때문입니다. 그래서 이번 글에서는 Fork 한 저장소를 원본.. 2020. 1. 20.
스프링 부트와 JPA 활용1,2 인프런 강의 정리 김영한님이 강의하신 인프런 스프링 부트와 JPA 활용1, 2 강좌를 학습하고 정리한 내용입니다. 소스코드는 Github를 참고해주세요 Gradle 의존관계 보기 ./gradlew dependencies --configuration compileClasspath Docker MySQL 설치 docker run -d --name test_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin007! mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 엔티티 설계시 주의점 1.가급적 Setter를 사용하지 말자 2.모든 연관관계는 지연로딩(Lazy)으로 설정하자 Fetch Join, 엔티티 .. 2020. 1. 20.