전체 글 229

[독서] 자바개발자를 위한 KOTLIN - 박중수 지음

개발관련 아티클 / 포스트 / 유튜브를 보면서 필독도서로 추천되는 책들은 메모장에 적어둔다. 도서관을 가면 메모장에 적힌 책들만 찾아 대여해서 나왔었는데 오늘은 그냥 눈에 띄는 책을 골라봤다. 자바 개발자를 위한 KOTLIN ! JAVA 만 알고있어서 다른 언어는 어떻게 생겼는지 구경이나 해보려고 책을 펴봤는데 변수를 이렇게 다룬다니 이렇게나 자유롭게 형변환을 한다니 오마갓 ~~ 3장읽고 바로 대여했다 코틀린으로 뭐만들지 생각하면서 책 읽는 중인데 신나서 콧김이 막 나온다 자소서 쓰고 면접준비하며 헛헛해진 마음을 채워야지 덤벼라 코틀린 ~ !~!!~! 코틀린 JVM 언어이다. 안드로이드 공식 지원 언어이다. ▶ 코틀린은 문법이 간결하다 NullPointerException 으로부터 안전하다 기존 라이브러..

개발서적 2022.11.14

[Kotlin] 데이터클래스 / 컬렉션

※ 데이터 클래스 단순히 값을 담는 클래스 자바 : VO, DTO 코틀린 : 데이터클래스 ㄴ 기본적으로 DTO 가 제공되며, getter 도 자동적으로 제공한다. 하지만 setter는 변수가 val 일 경우 제공하지 않는다. ㄴ 상수인 값을 변경하고자 할 때에는 copy 메소드를 통해 값이 변경된 새로운 객체를 생성한다 ▷ 데이터클래스의 선언 data class Book1(val title:String, val author:String, val price:Int) 하지만 이렇게 선언한다면 매개변수가 없는 생성자로, 객체생성을 하지 못한다. ▷ 매개변수가 없는 빈 객체를 만들고싶다면 data class Book2( val title: String = "No Title", val author: String ..

Kotlin 2022.11.14

[Kotlin] 예외처리 / 람다 / 클래스

※ 예외 처리 ▶ try-catch 코틀린에서는 try-catch를 표현식처럼 사용할 수 있다. try-catch 로 리턴값을 전달할 수 있으며, 그 값을 별도의 변수나 상수에 할당할 수 있다. val tcNumber = try{ "10A".toInt() }catch (e:NumberFormatException){ println("예외발생") 0 } println("tcNumber의 값은 $tcNumber 입니다") ※ 람다 ▶ 고차함수 함수를 일반 자료형이나 객체처럼 인자로 받거나, 리턴할 수 있는 함수이다. 흔히 매개변수에 오는 함수를 콜백함수라고 한다. 콜백함수는 고차함수로 인해 되불려지기 때문에 이렇게 불린다. (인자타입1, 인자타입2) -> 반환형 예제1) ()->Unit //인자도 없고 리턴값..

Kotlin 2022.11.14

[Kotlin] 조건문 / 반복문

아래는 박중수님의 자바개발자를 위한 KOTLIN 책을 보고 정리한 내용입니다. ※ 조건문 ▶ if var num:Int = 10 if(num == 0){ println("num은 0입니다") }else if(num == 10){ println("num은 10입니다") }else{ println("num은 0과 10이 아닙니다") } 자바와 다른 것은 코틀린은 삼항연산자가 없다. But if 문을 삼항연산자처럼 값을 할당하는데 사용할 수 있다 var a = 10 var b = 20 var c = if(a==b){ println("if 문의 코드블럭실행") "a는 b와 같은 값입니다" }else{ println("else 문의 코드블럭실행") "a는 b와 다른 값입니다" } //=> a 와 b는 다른 값이기..

Kotlin 2022.11.14

[과제] 셀프 코드리뷰

Project github : https://github.com/HAN-SEOHYUN/Limit-FileExtension ▶ 엔티티 설계 확장성을 고려했다. Type에 관계없이 확장자를 필요한대로 추가, 수정할 수 있다. FIX, CUSTOM 클래스를 만들어 테이블을 각각 생성하는 것도 고려해보았으나 PK가 겹칠 가능성을 안고 가야해서 그만두고, FileExtension 클래스에 ExtentionType enum 클래스를 멤버변수로 넣었다. String 혹은 boolean 을 통해 FIX, CUSTOM 을 구분할 수 있었지만 상태와 행위를 한곳에서 관리할 수 있는 enum 클래스를 선택했다. ▷ FileExtesion 클래스 하나만 만들어서 생겼던 문제점 각각 테이블을 만들었다면 findAll() 메서드..

프로젝트 2022.11.05

[ERROR] 프로젝트 빌드 에러 : Execution failed for task ':compileJava'.> invalid source release: 11

JAVA JDK 11 로 프로젝트를 만들었는데 (원래는 서버 배포 예정 없었음) EC2 서버에서 테스트겸 한번 돌려보려고 빌드하려니까 release version 11 에러가 발생했다. JDK 11 에서 JDK 1.8로 변경을 해야겠다. ▽ 자바 버전 변경 방법 [IntelliJ] JAVA 버전 바꾸는 방법(JDK버전) 기존에 8버전을 쓰다가 11버전으로 변경해야 하는 프로젝트가 생겨서 기록해보는 "버전변경방법" 인텔리제이에서 6곳을 변경해주면 된다 (5곳 - 버전변경선택 / 1곳 - 원하는 JDK선택) Project Structure dev-emmababy.tistory.com 구글링 해서 찾은 방법대로 모두 수정하고 다시 빌드 실행 > Task :compileJava FAILED FAILURE: Bu..

프로젝트 2022.11.04

[DFS] 프로그래머스 - 버스정류장 (JAVA)

알고리즘 공부 3일차. 프로그래머스 Level 2 문제도 겨우 풀어내는 내게 코딩테스트에서 Level 4 의 문제가 주어졌다. (프로그래머스에서 지금은 공개 상태가 아닌 문제다.) 4~5 시간 풀다가 시간부족으로 종료 3분전에 오답 코드를 제출할 수 밖에 없었다. 시험은 종료되었지만 시험과 별개로 이 문제를 꼭 풀고싶었다. 프로그래머스에서 이 문제를 찾을 수가 없어서 구글링을 해서 겨우 문제를 찾아냈다. ++ 구글링을 해보면 이 문제를 파이썬으로 푼 내용은 찾을 수 있는데 자바로 풀어낸 글은 찾을 수 없어서 100% 내 머리로 풀었다 한 문제로 10시간 고민하면 level 2 풀던 사람도 level 4 풀 수 있다 . . ! 문제 버스정류장 N개가 있습니다. 각 정류장에는 1번부터 N번까지의 번호가 매겨..

알고리즘 2022.10.30

[Kotlin] 함수 / 변수 / 자료형 / 배열

아래는 박중수님의 [ 자바개발자를 위한 KOTLIN ] 책을 보고 정리한 내용입니다. ※ 함수 - fun 키워드로 함수를 선언함 fun 함수명(변수명:타입, 변수명:타입...) : 반환형{ 내용... return 반환값 } fun sum(a:Int, b:Int) : Int{ return a + b } fun sum(a:Int,b:Int) = a+b 함수 내용이 단일 행일 경우는 리턴타입을 생략 할 수 있다. ▶ void = Unit 반환타입이 없는 함수의 경우 반환형태에 Unit 이라고 쓴다 (자바에서 메소드를 선언할 때 void 로 사용하는 것과 같은 뜻) fun printSum(a:Int, b:Int) : Unit{ println(a+b) } 아무것도 적지 않으면 Unit 이 기본적으로 리턴 됨 fu..

Kotlin 2022.10.24

[LOG] Logback 로그관리

팀프로젝트 당시 '투데이 수 집계' 기능 구현을 담당했었다. 일별로 사이트 접속자 수를 파악하여 DB에 넣는 기능을 만들어야 했다. 이를 구현하기 위해 Logback 라이브러리를 사용하여 접속자 수를 파악하고 DB에 INSERT 하는 코드를 만들어서 요일별 방문자 수 집계를 자동화했었다. 자바의 컬렉션을 적절하게 사용했던 예제라고 생각되어 정리해본다. 코드를 설명하자면 @Scheduled(cron = "0 0 0 * * *") public void readLogFile () throws IOException { 일별 접속자 정보가 들어있는 로그파일을 읽어 DB에 INSERT 하는 기능을 가진 readLogFile() 은 매일 자정에 실행된다 String basePath = "C:\\logs\\access..

프로젝트 2022.10.22

[SpringBoot & JPA 프로젝트] 카카오 전체 오류로 인해 서비스 이용불가 => 네이버 로그인 API 적용

카카오 데이터센터에 화재가 나서 전체 카카오 서비스가 이용 불가한 상황이 발생했다. 뜨개장터는 카카오 로그인 만을 통해서 회원가입하여 서비스를 이용 할 수 있다. 따라서 카카오가 복원되기 전까지 뜨개장터는 아무도 이용할 수 없게 되었다. (데이터센터 화재라니 .. 한 3일정도 소요될 것 이라고 예상했었다) 따라서 뜨개장터를 굴러가게 만들기 위해 최대한 빨리 네이버 로그인 API 를 적용시키기로 했다. 1. 애플리케이션 등록 - 이름, 전화번호, 이메일 3가지를 가져오기로 선택했음 애플리케이션을 등록하면 즉시 Client ID 와 Clisent Secret 키가 발급된다. 발급된 키로는 테스트 로그인만 가능하다. (개발자 ID로 테스트 가능) 실사용을 위해서는 네이버로부터 검수를 받아야 한다. 2. 코드작..

프로젝트 2022.10.17