본문 바로가기

Coding 24

[Java] 자바 동작 과정 Java 동작과정 개요 자바 컴파일러가 소스코드를 바이트코드로 변환시킨다. 클래스로더가 바이트코드를 JVM의 runtime data area(메모리 영역)로 올리고 Execution engine의 interpreter와 JIT compiler를 통해 코드를 해석한다. 컴파일? 인터프리터? 자바는 컴파일 방식과 인터프리터 방식 둘 다 사용한다. 컴파일 방식 : 자바 컴파일러는 소스코드를(*.java)를 자바 바이트코드(*.class)로 변환시키고, 인터프리터 방식 : JVM은 변환된 소스코드를 런타임에 읽어서 코드를 실행한다. JVM 역할 Class Loader System Java byte code (*.class)를 runtime에 읽어서 JVM의 메모리(runtime data area)에 배치시킨다... 2024. 4. 1.
[JAVA] 버전에 따른 주요 기능들 (SE8~SE20) 자바 버전이 변경됨에 따라 추가/변경된 주요 기능들을 담아봤다. SE8 (2014) Lambda, Method Reference Lambda Method Reference s -> s.getSample() Sample::getSample () -> Thread.currentThread().dumpStack() Thread.currentThread()::dumpStack (str, i) -> str.substring(i) String::substring (String s) -> System.out.println(s) System.out::println Interface Default Method 원래는 interface 내에는 메소드 정의만 가능하고 구현은 불가능 하였으나, default method를 이.. 2024. 3. 27.
[SpringBoot] @Builder의 장점 @Builde의 장점 Builer pattern을 권장하는데 그 이유가 궁금해서 정리해봤다. 장점 가독성을 높일 수 있고 human error 를 줄일 수 있다. 필요한 데이터만 설정할 수 있고 코드가 줄어든다. 유연성을 확보할 수 있다. toBuilder의 이점을 누릴 수 있다. 가독성을 높일 수 있고 human error 를 줄일 수 있다. 멤버변수가 많아지는 경우 생성자의 파라미터를 식별하기 힘들고 순서에 따라 실수가 발생하기 쉽다. 개발자의 편리성을 높여주고 사람에 의한 실수를 줄일 수 있는 것이다. 필요한 데이터만 설정할 수 있고 코드가 줄어든다. 생성자를 별도로 만들어줄 필요가 없다. 특히 일부 변수에 대해서만 갖는 생성자들을 반복적으로 만들어줄 필요가 없다. 이는 불필요한 코드를 줄일 수 있.. 2024. 1. 14.
[Javascript] null, undefined undefined vs null undefiend와 null이 비슷한 것 같지만 다르다. 명시적으로 없음을 나타내기 위해서는 undefined보다는 null이 좋다. undefined 값이 정의된 적 없음을 나타낸다. typeof undefined : 'undefined' null 값이 없음을 나타낸다. typeof null : 'object' 대입한 적 없는 변수나 속성과, 명시적으로 '없음'을 나타내는 경우가 구분되어야 코드의 의미가 명확해진다. 그렇기에 null과 undefiend를 구분해서 사용하는 것이 좋다. equality, identity 비교 시에도 차이가 발생한다. equality 비교 null == undefined : true indentity 비교 null === undefined .. 2024. 1. 11.
[Javascript] Falsy, Truthy, && Falsy, Truthy js에서 아래 값들은 false로 판단된다. 이러한 값들을 Falsy라 한다. false null undefined NaN 0 empty string('') 반대로 true로 판단되는 값들을 Truthy라고 한다. if나 3항 연산자에서 truthy가 true, falsy가 false로 판단되기에 null, undefined 외에도 0, empty string 등을 사용할 때 주의해야한다. && js에서 논리적 AND(&&)는 단순히 true, false만을 반환하는 것이 아니기에 주의가 필요하다. &&는 연결된 모든 피연산자가 false이면 false를 반환하고, true이면 맨 마지막 피연산자의 값을 반환한다. 즉, true && expression이라면 expression가.. 2024. 1. 11.