다른 사람과 나의 코드 작성법은 다를 수밖에 없다. 그래서 다른 사람의 코드를 이해하는데 많은 시간을 사용하게 되고 생산성이 떨어지게 된다. 이를 위해 '코드 컨벤션'이라는 것이 존재하는데, 코드 컨벤션은 개개인이 신경을 써야만 만족시킬 수 있다. 그렇다면 코드 컨벤션을 강제적으로 지킬 수밖에 없도록 만들 수는 없을까? 이를 위해 checkstyle이라는 것이 존재한다. checkstyle을 프로젝트에 적용해 보고, 강제적으로 자바 컨벤션을 지키는 방법에 대해 알아보자. intellij의 plugins에 들어가서, checkstyle을 검색하고 설치하자. 설치 후, Checkstyle 설정을 할 수 있는데, default 값으로 2가지가 존재한다. Sun Checks Google Checks 위의 두가지..
요청에 대한 응답 시간을 줄이거나, 좀더 효율적인 코드가 필요할때, 비동기 처리를 고려하는 것은 하나의 해결 방법이 될 수 있습니다. 이번에는 Spring에서 제공하는 Async annotation에 대해서 공부 해볼 것입니다. Spring이 제공하는 @Async를 공부하기 앞서 순수한 Java에서 기본적으로 사용할 수 있는 비동기 처리 방법에 대해 살펴본 후, Spring @Async를 사용하는 이유를 알아보는 순서로 작성할 것입니다. 순수한 Java는 멀티 스레드로 비동기 처리를 할 수 있는데요, 코드로 살펴봅시다. @Slf4j @NoArgsConstructor public class SyncService { public void execute() { for(int i=1; i { for(int i=..
서버를 구축하다보면, 사용자 요청에 대한 로그를 남겨야 하는 작업이 필요합니다. 저에게 주어진 요구사항은 사용자의 IP, 접속한 브라우저, 사용자의 요청을 처리한 후 어떤 결과가 나왔는지에 대한 정보를 로그를 남기는 것입니다. 먼저 구축된 서버의 아키텍처를 아주 간단하게 나타내면 아래의 그림과 같습니다. 가장 먼저 기존의 코드를 건드리지 않고, 요구사항을 만족할 수 있는 방법이 없는지 고민했고 Nginx의 Access Log를 이용하는 방법을 생각해봤습니다. 172.18.0.1 - - [28/Sep/2022:07:04:30 +0000] "OPTIONS /api/v1/channels HTTP/1.1" 200 Chrome/ Nginx의 Access Log는 별도의 설정 없이 위와같은 로그를 Default로 ..
- Total
- Today
- Yesterday
- paging
- mmu
- cs
- Database
- 공지
- OS
- soft delete
- algorithm
- spring
- java
- Effective Java
- Operating System
- go
- fiber
- effective
- ARP
- GORM
- network
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |