본문 바로가기

전체 글152

zsh, 환경 변수 추가 (Kotlin에서 환경 변수 값 가져오기) 1.terminal 실행한 뒤, 환경 변수 설정 $ echo 'export GH_USERANME=jayden-lee' >> ~/.zshenv 2.변경 사항 반영 $ source ~/.zshenv 3.환경 변수 설정 테스트 $ echo $GH_USERNAME Kotlin 에서 환경 변수 값 가져오기 fun main() { val ghUsername = System.getenv("GH_USERNAME") println(ghUsername) // jayden-lee } 2020. 4. 4.
Kotlin 프로젝트에서 SLF4J Logger 선언 방법 Log Interface 선언 interface Log { val logger: Logger get() = LoggerFactory.getLogger(this.javaClass) } Logger 사용 방법 class SampleClass { companion object : Log fun sampleFunction() { logger.info("Hello Kotlin") } } 2020. 3. 6.
Logback JSON 포맷으로 출력하기 의존성 추가 build.gradle 파일에 아래 의존성을 추가한다. compileOnly("ch.qos.logback.contrib:logback-jackson:0.1.5") compileOnly("ch.qos.logback.contrib:logback-json-classic:0.1.5") JsonLayout 설정하기 logback.xml 파일에 로그 메시지를 JsonLayout으로 출력되도록 설정한다. 추가적으로 JacksonJsonFormatter을 설정하면 Json 로그 메시지가 Json Formatter가 적용되어 출력된다. yyyy-MM-dd'T'HH:mm:ss.SSSX Etc/UTC true true 2020. 2. 28.
Github Action 에서 Submodule 설정 방법 프로젝트에 submodule이 등록되어 있으면, Github Action에서 checkout을 할 때 반드시 Submodule 옵션을 설정 해야 합니다. 만약 다른 Module에서 Submodule에 있는 소스코드를 참조 하고 있다면, "unresolved reference" 에러 메시지가 표시되고 빌드 에러가 발생합니다. Submodule 설정은 간단합니다. submoudles: true 한 줄만 추가 하면 됩니다. Submodule을 접근할 때 토큰을 필요로 한다면, 토큰 값도 같이 설정하면 됩니다. ${{ secrets.GITHUB_TOKEN }} 정보는 Setting > Secrets 에서 미리 설정 해놓은 값을 가져옵니다. - name: Checkout uses: actions/checkout@.. 2020. 2. 28.
Kotlin in Action #3. 함수 정의와 호출 'Kotlin in Action' 책을 학습하고 정리한 내용입니다. 3. 함수 정의와 호출 코틀린에서 함수 정의와 호출하는 방법에 대해서 살펴보는 것을 중점으로 한다. 그리고 더 나아가 확장 함수 및 프로퍼티를 사용함으로써 코틀린이 자바와 함께 사용했을 때 어떤 장점이 있는지 알아보자. 코틀린에서 컬렉션 만들기 코틀린에서 set, list, map 컬렉션 객체를 생성하고 어떤 클래스에 속하는지 출력하면 익숙한 텍스트를 볼 수 있다. fun main(args: Array) { var set = hashSetOf(1, 5, 10) var list = arrayListOf(1,2,3) var map = hashMapOf(1 to "one", 3 to "three", 5 to "five") println(set.. 2020. 2. 23.
Kotlin in Action #2. 코틀린 기초 'Kotlin in Action' 책을 학습하고 정리한 내용입니다. 2. 코틀린 기초 이번에는 모든 프로그램에서 필수 요소인 변수, 함수, 클래스 등을 코틀린에서 어떻게 선언하고 활용하는지 살펴본다. 또한, 제어 구조문과 스마트 캐스트, 예외처리에 대해서도 알아본다. 함수와 변수 Hello World 프로그램 Hello World를 콘솔에 출력하는 프로그램을 만들어보자. 코틀린에서는 함수 하나로 쉽게 만들 수 있다. fun main(args: Array) { println("Hello World") } 함수를 선언할 때 fun 키워드를 사용한다. 자바와 다르게 파라미터 이름 뒤에 파라미터 타입을 쓴다. 함수를 클래스 안이 아닌 최상위 수준에 정의할 수 있다. 배열도 일반적인 클래스와 마찬가지이다. 코틀린.. 2020. 2. 17.
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.