일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 블록체인
- 리뷰
- Nestia
- terraform cloud
- typeorm
- 유데미
- blockchain
- 백엔드
- terraform
- TypeScript
- restdocs
- ChatGPT
- 글또
- corretto
- IAC
- chai
- spring
- Mocha
- nestjs
- Redis
- 온라인강의
- Database
- 이더리움
- nodejs
- class-transformer
- gradle
- java
- docker
- 도서
- mysql
- Today
- Total
목록전체 글 (26)
끄적끄적
[Java 멀티스레딩, 병행성 및 성능 최적화 - 전문가 되기] 개발할 때 자주 찾아보고 어려워하는 부분이 동시성과 병렬성 부분이다. 특히나 처음 개발을 접하는 사람들은 이 두 용어 자체를 헷갈려 할 정도이며 최근 트랜드는 하나의 서버가 아닌 scale out 을 통해 여러 서버를 사용하기도 한다. 물론 이 강의는 이 부분을 다룬 강의는 아니며 오로지 하나의 프로그램에서 Java Thread 사용법을 알려주는 강의 이다. 필자는 Typescript 를 메인 언어로 다루고 있어 정확히는 잘 모르지만, Java 를 사용하는 대부분의 개발자들은 이미 Spring (boot) 를 통해 추상화된 상태로 쓰레드를 사용하고 있기 때문에 Thread 를 다룰 일이 크게 없다고 생각할 수 있다. 그러나 Spring 을 ..
작년 초에 선착순 NFT 판매 이벤트를 개발해야 한 적이 있었다. 당시 선착순 이벤트의 경우 Redis 에서 분산락 알고리즘으로 제공하는 redlock 을 활용해서 개발하는 경우가 대부분이였으며 정보도 많았었다. 당연히 필자 또한 빠르게 개발하기 위해 이를 활용했었다. 그러나 이벤트가 종료된 후에는 선착순 판매가 아닌 단순히 상품(NFT)을 열어두고 판매하는 상황이 대부분이게 되었다. (사실 이벤트 때도 많은 인원수가 몰리지 않아 실망했던 기억이 있다.) 시간이 흐르면서 레디스 자체가 성능적으로 큰 필요가 없는 경우가 대부분이라는 사실을 알게 되어 쓸데 없는 비용을 줄이기 위한 작업을 진행하기로 했다. 요구사항 자체는 간단했다. 기존 비즈니스 로직은 건드리지 않을 것 언제든 선착순 이벤트로 바뀔 시 빠..
테스트를 하다보면 예외사항을 테스트해야 하는 경우가 자주 생긴다. 이 때 필자의 경우 어떻게 예외 테스트를 하고 있는지에 대해 이야기를 해보고자 한다. 이 포스팅에서는 커스텀한 에러를 던지고 있으며 그 형태는 아래와 같다고 가정하자. export class CustomError extends Error { name: string; message: string; code: string; stack?: string; constructor(code: string, message: string, name?: string, stack?: string) { super(message); this.name = name || code; this.message = message; this.code = code; if (..