일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 테스트더블
- Java
- java 멀티스레딩
- MinorGC
- spring boot
- MajorGC
- 클린아키텍처
- 인텔리제이에서 프로젝트 이름 바꾸기
- js숫자체크
- 유스콘
- 멀티코어 프로그래밍
- test double
- 자바디자인패턴
- refelction API
- 윈도우11 아이폰 메모 앱
- 헥사고날
- MappingJackson2HttpMessageConverter
- GOF
- 개발컨퍼런스
- 어댑터패턴
- mustache함수
- 윈도우11 icloud 메모
- java병렬처리
- 동시요청
- @advice
- 윈도우11 바로가기
- 테스트대역
- reflection api
- 스프링부트 프로젝트 이름 변경
- Spring
- Today
- Total
목록개발노트/Spring | Java (8)
져니의 개발 정원 가꾸기

목차 배경 최근 특정 데이터 수집하는 배치를 개발할 기회가 있었다. 외부 연동사로부터 데이터를 얻어와 데이터 후처리 및 DB에 적재하는 배치작업이었고, 처리 대상 데이터들이 많을 경우 배치의 수행속도를 높이기 위해 어떻게 배치 로직을 가져갈 것인가를 고민했다. 특히 [후처리 ~ DB적재 부분]을 배치 프로젝트 내부에서 다룰 것인지 마이크로서비스 API 서버에서 기능을 제공하도록 개발할 것인지가 메인 고민이었는데, 두 프로젝트 중 하나는 Java7이고, 하나는 Java8+ 이어서 어느 서버에서 제공할 것인지에 따라 적용 가능한 병렬 프로그래밍이 달라졌다. 실제로 수집되는 데이터를 확인해보니 수행시간이 과도하게 길어질 정도로 데이터가 많지 않아서 순차처리하기로 결정했지만, 트래픽이나 데이터 양이 많아질 경우..

목차 배경 Spring Boot 프레임워크로 개발된 운영 프로젝트 중에서 "사이트 페이지 전체에 대해 인증된 회원들만 접근할 수 있다"라는 요구사항을 가진 서비스가 있어, robots.txt를 통해 검색엔진이 사이트의 정보를 수집/크롤링하지 못하도록 robots.txt를 적용할 필요가 있었다. 많은 블로그에서 기본 정적리소스 폴더에 robots.txt만 추가해도 적용되어 [도메인 url 최상단]/robots.txt 경로로 접근 가능하다고 하지만, 사실상 spring boot 구성 설정이 어떻게 되어 있는가에 따라서 파일만 추가하는 것으로 적용되지 않는다. 이에 설정에 따라 robots.txt를 적용하는 방법에 대해 알아보고자 한다. Robots.txt robots.txt는 뭐하는 애일까? robots.t..

목차 배경 최근에 업무 프로젝트를 정리하던 중 입사 초기에 신규 프로젝트에 투입되어 부하테스트 진행했던 부분이 생각났다. 1차 성능테스트 당시 부하가 증가함에에 따라 힙메모리가 지속적으로 증가해 OOM(Out Of Memoery) 문제가 발생했었고 이를 해결하기 위해 GC 설정과 캐시 설정을 바꾸었다. 실제 고객들이 사용중인 서비스에서 OOM이 나면 사용자는 아예 해당 애플리케이션이 제공하는 기능을 아예 사용할 수 없는 불편함을 겪게 된다. 더군다나 개발자가 이를 눈치 채지 못하고 화면과 기능이 꽤 오랜시간동안 제공되지 않은 상태로 머물러 있다면 결국 회사 매출과 사용자 이탈에도 악영향을 미칠 수 있다. 이처럼 GC는 애플리케이션 성능과 서비스의 품질에 지대한 영향을 끼치는 요소로서 중요하기 때문에 GC..

목차 이번주에 회사에서 aop를 적용해 보았는데, 내친김에 aop 기술과 스프링AOP를 사용하는 간단한 방법에 대해 다뤄보고자 한다. AOP(Aspect Oriented Programming)란 무엇일까? 한국말로 직역해보자면 AOP는 '관점 지향 프로그래밍'이라는 뜻이다. 여기서 말하는 관점(Aspect)는 부가기능 모듈로 핵심기능은 아니지만 핵심기능에 부가 기능을 제공하는 의미있는 모듈을 말한다. 부가기능의 대표적인 예로 로깅과 트랜잭션이 있고 세트메뉴처럼 핵심기능에 부가적으로 제공되는 기능들이라고 보면 된다. AOP가 등장하게 된 배경에는 객체지향 프로그래밍(OOP)이 있다. OOP는 객체지향 설계 원칙(SOLID)에 따라 관심사 분리를 지향한다. 클래스가 하나의 목적 아래 동작하고 수정될 수 있도..