[GO SOPT] Server 2차 세미나

devguri·2023년 4월 20일
1
post-thumbnail

PUT, PATCH 차이

  • PUT : 리소스 모든 것을 업데이트
  • PATCH : 리소스 일부를 업데이트

-> 회원 DB에 이름, 나이,성별이 있는 경우

  • PUT으로 이름만 변경하면 나이와 성별은 null처리 된다.
  • PATCH 사용하면 회원 이름만 변경이 가능하다.

자바의 컴파일 과정

  1. 개발자가 자바 소스코드(.java) 작성한다.
  2. 자바 컴파일러는 자바 소스코드 파일 읽고 바이트코드(.class) 코드로 컴파일 한다. (바이트파일은 컴퓨터가 아직 읽을 수 없는 JVM이 읽을 수 있는 코드)
  3. 컴파일된 바이트코드를 JVM 클래스 로더에게 전달한다.
  4. 클래스 로더는 동적로딩을 통해 런타임 데이터 영역(JVM 메모리)에 올린다.
  5. 실행 엔진은 JVM 메모리에 올라온 바이트 코드들을 명령어 단위로 가져와서 실행한다.
    • 인터프리터 : 바이트 코드 하나씩 읽어서 해석하고 실행
    • JIT 컴파일러 : 바이트 코드 전체를 컴파일하여 바이너리 코드로 변경하고 실행

Builder pattern

  • 생성패턴 중 하나임
  • 복잡한 객체를 생성하는 방법을 정의하는 클래스와 표현하는 방법을 정의하는 클래스를 별도로 분리하여, 서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공하는 패턴
  • 많은 Optional한 멤버 변수나 지속성 없는 상태 값들에 대해 처리해야하는 문제들을 해결함
  • Retrofit, Okhttp 등 빌더 패턴을 사용함

Annotation 정리

  • @AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자를 추가
public class Person {
	private String name;
    private int age;
    
    public Person (String name, int age) {
    	this.name = name;
        this.age = age;
    }

}

-> 원래는 모든 필드값 받는 생성자를 이렇게 생성해야 함

@AllArgsConstructor
public class Person {
	private String name;
    private int age;
    
    public Person (String name, int age) {
    	this.name = name;
        this.age = age;
    }

}

-> 어노테이션 생성하면 자동으로 생성자 추가해줌

  • @RequiredArgsConstructor : final이나 @NonNull인 필드 값만 파라미터로 받는 생성자를 추가
  • @NoArgsConstructor : 기본 생성자를 자동으로 추가
  • @RestController : Spring에서 Controller 중 View로 응답하지 않는, Controller를 의미, 반환 결과를 JSON 형태로 반환한다.
    • HttpResponse로 바로 응답이 가능하다.
    • @ResponseBody 역할을 자동으로 해준다.
    • RestController = @Controller + @ResponseBody
  • @PostMapping : @RequestMapping(Method=RequestMethod.POST)과 같다.
  • @Service : 비즈니스 로직을 수행하는 class라는 것을 의미
  • @SpringBootApplication : @Configuration, @EnableAutoConfiguration, @ComponentScan 3가지를 하나의 애노테이션으로 합친 것
profile
Always live diligently

0개의 댓글

관련 채용 정보