목록2024/02 (3)
IT 개발노트
코딩 컨벤션이란? 코딩 컨벤션이란 가독성이 좋고 관리하기 쉬운 코드를 작성하기 위한 코딩 스타일 규약을 말한다. 코딩 컨벤션을 준수하면 가독성이 좋아지고 성능에 영향을 주거나 오류를 발생시키는 잠재적인 위험 요소를 줄여줘 유지보수 비용을 줄일 수 있다. 코딩 컨벤션을 적용하기 위해 정적 코드 분석 도구를 도입하는데, 보통 자바스크립트에서는 ESLint, Java에서는 Checkstyle과 같은 도구를 주로 사용한다. Java에서는 구글이나, 네이버에서 지정한 코딩 컨벤션이 유명하므로 오늘은 InteliJ에 네이버 코딩 컨벤션을 Code Style Formatter로 설정하고, Checkstyle까지 적용하는 과정을 설명한다. 네이버 캠퍼스 핵데이 Java 코딩 컨벤션에 대해 자세한 명세 사항은 아래 링크..
Stateful (상태유지) 상태 유지라 함은 클라이언트와 서버 관계에서 서버가 클라이언트의 상태를 보존함을 의미한다. 클라이언트와 서버 간에 송수신을 하며 단계별 과정을 진행하는데 있어, 서버에서 클라이언트가 이전 단계에서 제공한 값을 저장하고 다음 단계에서도 저장한 상태이다. 대표적으로 홈페이지에서 한번 로그인을 하면 페이지를 이동해도 로그인이 풀리지않고 계속 유지되는 것이 바로 서버가 클라이언트의 상태를 유지(기억)하고 있으니까 가능한 것이다. 클라이언트의 정보를 기억한다라는 말은 어딘가에 정보를 저장하고 통신할때마다 읽는다는 뜻이다. 이러한 정보들은 일반적으로 브라우저의 쿠키(Cookie)에 저장되거나, 서버의 세션(Session) 메모리에 저장되어 상태를 유지하게 된다. Stateful한 프로토..
객체를 캡슐화 하는 것은 권장 습관이므로 setter를 사용한다고 보면 된다. 근데 만약 deserialize 한 후에 해당 객체가 immutable 하기를 원한다면? setter가 없어야 한다. 이때 기본 생성자 + setter 조합을 대신해 객체를 생성할 수 있도록 해주는 것이 @JsonCreator 어노테이션이다. 이 어노테이션을 생성자나 팩토리 메소드 위에 붙이면 jackson이 해당 함수를 통해 객체를 생성하고 필드를 생성과 동시에 채운다. 이렇게 생성자나 팩토리 메소드를 통해 필드 주입까지 끝내버리면 setter 함수가 필요 없게 된다. jackson을 통해 deserialze한 immutable한 객체를 얻을 수 있는 것이다. 그래서 @JsonCreator를 쓰는 것 같다. 생성자를 포함한..