최근 포스트

공학작문 - About how to write

2 분 소요

평소에도 정보보안에 관련해서 공부한 내용을 Notion에 꾸준히 쓰고 있었습니다. 하지만 이 수업에서 배운 공학적인 글쓰기 방법을 전혀 사용하지 않아 현재로선 매우 부끄러운 글들입니다. 아래의 모든 내용과 자료는 한상곤 교수님의 공학작문및발표 수업을 참고했습니다. 아래의 내용을 적...

Effective Java Item 6 - 불필요한 객체 생성을 피하라

1 분 소요

String 객체 사용 주의점 new String()으로 객체를 생성하는 방법은 사용하면 안됩니다. 왜냐하면 new 연산자로 String 객체를 생성할 경우 String은 Heap 영역 내 “String Pool”에 저장되지 않고 매번 새로운 객체를 생성하기 때문입니다. Strin...

Spring Boot - KEEPER R1 프로젝트 모니터링 툴 부착

2 분 소요

현재 KEEPER R2 프로젝트는 운영 단계에 돌입하기 전입니다. 프로메테우스와 그라파나를 활용해서 모니터링을 하면 이상 징후를 사전에 탐지할 수 있고 재빠른 대응이 가능할거라 기대합니다. 그리고 해결하지 못한 @BatchSize 버그때문에 성능을 가늠하기 어려워 한번쯤은 테스트를...

Spring - Proxy와 데코레이터 패턴 및 프록시 패턴

1 분 소요

핵심기능을 하는 코드와 부가기능을 하는 코드가 있을 때 보통 핵심기능이 부가기능을 사용하도록 하고 부가기능의 구체적인 로직은 밖으로 빼는 구조로 사용합니다. 만약 부가기능이 많아지고 여러 핵심기능에 적용해야 한다면 전체적인 코드는 지저분해지고 핵심기능은 여러 부가기능을 적용해야 한...

JPA - OSIV 기능에 대해서 알아보자.

2 분 소요

KEEPER R2 프로젝트에서 이메일 변경 API가 정상적으로 작동하지 않는다는 제보를 받았습니다. 근본적인 이유는 @Transactional 어노테이션을 빼먹어서 생긴 문제이지만 엉뚱한 삽질로 OSIV에 대해서 공부하게 되었고 JPA에 대해서 더욱 잘 알게 되었습니다. 아래는 트...

KEEPER - 프로필 조회 최적화

3 분 소요

KEEPER R2 프로젝트를 진행하면서 맡은 Task 중 회원의 프로필을 조회하고 뿌려주는 기능이 있었습니다. KEEPER R2 홈페이지 배포가 8월 말에 계획이 되어있어 API의 성능은 미쳐 고려하지 못했습니다. 성능 문제는 이슈 발행 후 나중에 고쳐보자고 결정했는데 현재 대부분...

Effective Java - 열거타입

3 분 소요

방학 때 속성으로 자바 언어에 대해서 공부했고 프로젝트에 참여했습니다. 프로젝트를 진행하는데 기초가 정말 부족하다는 느낌을 많이 받았습니다. 그래서 전공 수업으로 플랫폼기반 프로그래밍 수업(JAVA)을 선택했고 Effective Java 강의와 병행하기로 마음먹었습니다.