728x90
문제상황 Java/Spring을 Kotlin/Spring으로 마이그레이션 하는 과정에서 Kotlin의 Lombok 사용에 어려움을 겪었다.그리고 그 이유 Lombok이 Javac의 Annotation Processing 과정에서 처리되는데, Javac보다 Kotlinc가 더 먼저 작동하여 Javac에서 Annotation Processing 과정을 통해 생성되는 코드를 Kotlin 코드에서는 알 수가 없기 때문임을 알게 되었다. 이 과정에서 Javac의 Annotation Processing을 포함한 전반적인 과정을 흝어보고 싶어 학습하여 기록해 두게 되었다. javac의 동작 과정 javac의 동작과정에 대해 자세히 파헤쳐보자. javac는 대략 아래 7가지 단계로 컴파일을 수행한다. 1. Parsi..
미션 도중 생긴 고민 💭public Cars(List carNames) { ArrayList cars = new ArrayList(); for (String carName : carNames) { cars.add(new Car(carName)); } this.cars = cars; } Cars 객체를 생성할 때, List형태의 carNames를 입력받은 뒤,For-Loop 문을 통해 cars 필드를 초기화 해주었다. 하지만 For-Loop문을 생성자 로직에 적용하니 개인적으로 생성자 로직이 지저분하다는 생각이 들었다.때문에 Stream을 사용하여 짧고 가독성있는 코드로 리팩토링하여 사용하고자 하였다. 그리고 이때 머릿속에 한가..
자바에서의 개행 📃본인은 보통 자바의 문자열 내에서 라인을 개행할 때 아래와 같이 개행하곤 했다.System.out.println("안녕하세요\\n"); 그러던 중, 조원과의 대화를 통해 놓치고 있던 부분에 대한 하나의 인사이트를 얻게 되었다.그건 바로 개행 문자는 OS별로 상이하다는 점이다. 이전에 대학 강의에서 배웠던 것이 어렴풋이 기억이 나긴 하지만 정확히는 기억이 나질 않아 찾아보았고그 결과 개행 문자가 3종류나 존재하고 있으며, OS 별로 상이한 경우도 존재함을 알 수 있었다. 개행문자 종류 CRLF(\r\n), CR(\r), LF(\n)Windows 운영체제: CRLF(\r\n)Unix 계열: LF(\n)Mac: CR(\r)이후 Macintosh: LF(\n) 🧐 그럼 \n 없이 어떻게..
Java 클래스 멤버는 각자의 위치가 존재한다.우테코 미션에 대해 코드리뷰를 받으면서 이런 리뷰를 듣게 되었다.클래스 변수의 선언부를 최상단으로 바꾸는 게 어떨까요? 컨벤션에 맞춰주시면 좋을 거 같아요! 클래스 멤버가 각각의 위치를 가지고 있다는 건 알았지만 내가 컨벤션을 잘못 기억하고 있었나보다 싶었다. 때문에 다시 한 번 찾아보고, 기록으로 남겨두고자 한다.나 외에도 필요한 사람들에게 도움이 되었으면 좋겠다! 클래스 멤버의 선언 순서Oracle의 자바 Code Covention 문서를 보면 클래스 멤버는 각자의 선언 위치를 가지고 있음을 알려준다.Class (static) variables public → protected → default → private 순서Instance variables p..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.