목록전체 글 (53)
웹풀스택 공부 중
Java의 동작 원리3가지만 기억하자Java (Source Code: 내가 작성한 코드) → AST (Abstract Syntax Tree: 문법을 트리형태로 만들어준다) → Binary Code (Machine Language: AST를 해석해서 Machine Language로 변환하여 실행한다)Lombok 동작 원리Lombok: Annotation Processor이다Annotation Processor가 Source code를 읽고, 코드를 대신 작성해준다Source Code, AST, Binary Code에 전부 코드 추가 및 수정이 가능하다Lombok은 AST에다가 코드를 주입해준다“자식”으로 붙여준다Compile 시점에 Annotation Processor를 사용해 Source code의 AS..
생성자에 매개변수가 많다면 빌더를 사용하는건 어떠한가?Builder객체 생성의 모든 경우의 수를 지원한다매개변수가 많은 상황에서 생성자 혹은 정적 팩토리 메소드보다 더 유용하게 사용할 수 있다생성자가 넘겨줄 값을 지연시킬 수 있다한번에 값을 넘겨줄 필요 없이, 계속해서 넘긴 후, 설정이 끝났을 떄 생성이 가능하다순서대로 마음껏 값을 넣을 수 있다!Builder 패턴은 3가지로 분리되어 호출된다빌더 정의 → 필드 설정 → 객체 생성빌더 정의 Member.MebmerBuilder builder = Member.builder()필드 설정 builder.name("Luke").email("Luke@example.com")객체 생성 Member luke = builder.build();흔히 보이는 Builder ..
Object객체 생성하는 방법 3가지@NoArgsConstructor + @Setter 먼저 빈 객체를 생성 한 뒤, 필요에 따라 원하는 필드 값을 주입하는 방식public class Member { private String name; private String email; public Member() {} public void setName(String name) { this.name = name; } public void setEmail(String email) { this.email = email; }}// mainMember aaron = new Member();aaron.setName("Aaron");aaron.setEmail("aaron@example.com");@NoArgsConstruct..
OOP (Object Oriented Programming): 객체 지향 프로그래밍OOP의 핵심 개념:캡슐화 (Encapsulation): 최대한 감추고 최소한의 Method만 노출하자Field를 최대한 감추자상속 (Inheritance): 확장추상화 (Abstraction): Interface + Abstract Class다형성 (Polymorphism): Class의 다형성 + Interface의 다형성Class (캡슐화 + 상속)Class = Data + ActionData: Field or Attribute내부로 감춰야하는 상황에서는 내부 Method에서만 해당 데이터를 사용한다외부로 노출되어야하는 상황에서는 Getter를 사용하여, 특정 포멧을 적용하거나 필요 정보만 변환하여 노출한다이유) 필..

14 - 2. Java - JVMJVM (Java Virtual Machine)JVM은 이거 3개만 기억하면 된다는데…Class Loader - 실행을 위한 Bytecode를 가져온다실행을 위한 Class들만 가져온다동적 로딩으로 필요한것만 꺼내서 쓸 수 있다!Rutime Data Area - 메모리에 얹는다Execution Engine - 엔진 구동Runtime Data Area의 영역Thread AreaStack영역 - 각각의 Thread가 가지고 있다기본타입 변수 (Primitive)는 Stack 영역에 직접 값을 가진다private Integer v1Reference Type Variable은 Heap 영역에 객체 주소 값을 가진다private int v2Non-Thread Area공유 영역 - ..
Java 동작 원리Intellij는 두개의 Application 구동이 필요하다우리가 만든 우리의 Applicationapplication.yaml = tsconfig + jsconfig + prettierrc + .env + …Gradle 이라는 Java ApplicationGradle Restart button == npm install두 Application 간의 Version을 맞춰야 실행한다Enabled Annotation Processing@ 가 붙은 문법“Lombok Annotation” 이라 부른다Method를 만들어준다@ 를 통해 AST를 생성한다AST (Abstract Syntax Tree): 문법을 해석하는 트리 구조AST 기반으로 Bytecode로 변환한다Lombok은 이때 AST에..