Plaything

1.웹소켓 채팅, withSocketJs()에서 발생하는 에러

post-thumbnail

2.CI/CD 자동배포, Variable과 Secrets를 혼동해서 생긴 문제

post-thumbnail

3.DB 보안 수준을 높여보자

post-thumbnail

4.S3 프로필 사진 -(1) SnowFlake와 유효성 검증

post-thumbnail

5.멤버와 프로필은 @One-to-One 관계로 해야할까?

post-thumbnail

6.@OneToOne의 외래키를 어디에 넣어야 할까?

post-thumbnail

7.단위 테스트 "no Transaction is in progress", 트랜잭션 매니저로 생긴 문제?

post-thumbnail

8.Inner Join과 Left Join의 차이

post-thumbnail

9.캐시와 포인트, 서브 테이블을 사용해야할까?

post-thumbnail

10.트랜잭션 롤백, 체크 예외는 커밋된다?

post-thumbnail

11.외래키로 인한 경합문제

post-thumbnail

12.수백만 건의 포인트 레코드, Cs를 고려한 설계+조회 성능 챙기기

post-thumbnail

13.매칭 알고리즘, 속도는 얼마나 걸릴까?

post-thumbnail

14.시간 관련 비즈니스 로직 테스트

post-thumbnail

15.트랜잭션 범위가 길어질땐? 범위를 좁혀라

post-thumbnail

16.S3에 업로드된 사진, 트랜잭션 롤백 안 된다

post-thumbnail

17.체크 예외->롤백, 테스트에서는 어떻게 확인할까?

post-thumbnail

18.포인트 적립/사용, 동시성 제어 필요할까?(with Redis)

post-thumbnail

19.CircuitBreaker로 Retry, 흐름 차단 시도하기

post-thumbnail

20.CircuitBreaker 설정 공부하기

post-thumbnail

21.Redis에서 발생하는 장애의 전파를 막아보자

post-thumbnail

22.CircuitBreaker 자동화 테스트, @MockBean과 @SpyBean 사용하기

post-thumbnail

23.레디스를 TestContainers에 넣기

post-thumbnail

24.레디스 서버가 종료됐을 때 타임아웃 설정하기

post-thumbnail

25.서버 상황을 디스코드 웹훅 메시지로 전송하자(Feign vs RestTemplate)

post-thumbnail

26.TestContainer 트러블 슈팅

post-thumbnail

27.Redis 디스크 저장 문제, 저장 설정 끄기

post-thumbnail

28.스웨거 Content-Type 'application/octet-stream' is not supported 에러 해결하기

post-thumbnail

29.채팅을 인덱스로 최적화하기, 조회 성능 16배 개선

post-thumbnail

30.채팅 중 '금칙어'를 막으려면? -(1) 알고리즘 정리

post-thumbnail

31.채팅 중 '금칙어'를 막으려면? - (2) 라이브러리 테스트

post-thumbnail

32.채팅 중 '금칙어'를 막으려면? -(3) 정규표현식, 캐싱

post-thumbnail

33.채팅방 조회시 n+1 문제 해결하기+인덱스 성능 튜닝

post-thumbnail

34.JOIN에 OR을 붙이면 성능 최적화가 어렵다?

post-thumbnail

35.Left join을 Inner join으로 튜닝하자

post-thumbnail

36.채팅 트래픽을 RateLimiter로 조절하자

post-thumbnail

37.Cron을 어떻게 테스트할 수 있을까?

post-thumbnail

38.Stomp 테스트툴로 테스트해보자

post-thumbnail

39.Stomp interceptor로 보안을 강화하자

post-thumbnail

40.Stomp도 Junit 단위 테스트로 로직을 테스트하자

post-thumbnail

41.heartBeat를 이용해 웹소켓의 Disconnect를 감지하자

post-thumbnail

42.불안정한 네트워크, 채팅 메시지의 누락을 막자-(1)

post-thumbnail

43.불안정한 네트워크, 채팅 메시지의 누락을 막자-(2)

post-thumbnail

44."제 PC에서 쓸 수 있게 도커로 만들어주세요"가 무슨 뜻일까?

post-thumbnail

45.불안정한 네트워크, 채팅 메시지의 누락을 막자-(3)

post-thumbnail

46.클라이언트에 적절한 상태코드를 전달하자

post-thumbnail

47.S3를 안전하게 사용해보자(CloudFront를 활용한 보안, 캐싱)-(1)

post-thumbnail

48.레디스 로그를 monitor로 모니터링하자

post-thumbnail

49.NGINX와 웹소켓을 연결해보자

post-thumbnail

50.NGINX Rate Limiting 기능으로 어뷰징에 대처하자

post-thumbnail

51.NGINX 스웨거 연결이 안된다? burst 기능을 활용하자.

post-thumbnail

52.디렉토리 스캔 공격을 막자(NGINX+Fail2ban)

post-thumbnail

53.NGINX 보안을 강화해보자

post-thumbnail

54.fail2ban으로 차단된 ip를 디스코드 웹훅에 로깅하자

post-thumbnail

55.NGINX 로그 부하를 줄여보자

post-thumbnail

56.Data source rejected establishment of connection, "Too many connections"에러를 해결하자

post-thumbnail

57.Redis TLS 데이터를 암호화하자

post-thumbnail

58.시스템 상태를 확인하자

post-thumbnail

59.로그 설정을 해보자-(1)

post-thumbnail

60.Redis 캐시 전략을 짜보자

post-thumbnail

61.Redis Pipeline을 이용해보자(+WireShark로 확인해보자)

post-thumbnail

62.E2C에서 만든 TCP dumpfile을 WireShark로 확인하자

post-thumbnail

63.외래키 제약 조건이 필요할까?

post-thumbnail

64.NGINX 로그를 정리해주자

post-thumbnail

65.설정파일의 커밋 히스토리를 지우자

post-thumbnail

66.Cascade 옵션을 사용하는 게 좋을까?

post-thumbnail

67.Cascade.REMOVE와 orphanRemoval=true의 차이는?

post-thumbnail

68.@DynamicUpdate를 사용해야 할까?

post-thumbnail

69.기본 타입과 참조 타입 중 어떤 걸 사용해야 할까?

post-thumbnail

70.ConcurrentModificationException는 무엇이고, 어떻게 해결할까?

post-thumbnail

71.Jpa의 쓰기지연 때문에 발생한 문제, flush()로 해결하자

post-thumbnail

72.Validation을 외부 리소스(S3)를 사용하기 전에 진행하자

post-thumbnail

73.방어적 프로그래밍이란- ofNullable로 NULL을 방어하자

post-thumbnail

74.방어적 프로그램이 필수일까? - NULL을 허용해서 빠르게 실패해라

post-thumbnail

75.스프링 시큐리티 설정을 하자-(1) 로그인 필터구현

post-thumbnail

76.스프링 시큐리티 설정을 하자-(1) 로그인 필터구현

post-thumbnail

77.스프링 시큐리티 설정을 하자-(2) 로그인 검증 로직 구현

post-thumbnail

78.스프링 시큐리티 설정을 하자-(3) 설정 에러들을 해결하자

post-thumbnail

79.스프링 시큐리티 설정을 하자-(4) 예외처리

post-thumbnail

80.fail2ban ip 화이트리스트를 설정해보자

post-thumbnail

81.모바일 앱 OAuth2 (1) -액세스 토큰으로 유저 정보를 받아오자

post-thumbnail

82.모바일 앱 OAuth2 (2) 소셜 회원가입, 중복 가입은 어떻게?

post-thumbnail

83.모바일 앱 OAuth2 (3) 애플로그인을 개발하자

post-thumbnail

84.채팅 중 '금칙어'를 막으려면? - (4) 왜 Pattern을 캐싱해야 할까?

post-thumbnail

85.스프링 서버 시간을 서울로 맞춰보자

post-thumbnail

86.채팅 중 '금칙어'를 막으려면? - (5) 필터링된 단어 통계를 만들자

post-thumbnail

87.STOMP Interceptor 예외를 처리해주자

post-thumbnail

88.STOMP 비즈니스 로직에 따른 예외 처리

post-thumbnail

89.SSH 무차별 로그인 시도를 막자(+해외 ip차단)

post-thumbnail

90.Lynis를 통해서 EC2 보안 취약점을 해결해보자

post-thumbnail

91.Circuit Breaker가 모든 예외를 catch하는 문제를 해결해보자

post-thumbnail

92.깃헙 액션으로 코드 스펠링 체크를 하자(오타체크)

post-thumbnail

93.GitHub Action CI/CD가 막히는 문제를 해결해보자(ssh 접속 해외 ip차단의 맹점)

post-thumbnail

94.구글 컨벤션을 강제하자

post-thumbnail

95.Rest한 API URL을 만들어보자

post-thumbnail

96.서버 메모리 최적화를 해보자 -(1)서버 모니터링 시스템을 만들자

post-thumbnail

97.서버 메모리 최적화를 해보자 -(2) 프로필 조회 API(메모리 2MB->0MB, 쿼리 7개->1개로 최적화)

post-thumbnail

98.서버 메모리 최적화를 해보자 -(3) 엔티티 조회 시 필요한 칼럼만 조회하자

post-thumbnail

99.HTTPS를 적용해주자(Let's encrypt)

post-thumbnail

100.스웨거 요청을 HTTPS로 보내자+CORS를 해결하자

post-thumbnail

101.서버 IP로 접근하는 걸 NGINX로 차단하자

post-thumbnail

102.어뷰징에는 404, 444중 어떤 응답을 해야할까?(+NGINX Bad Bot Blokcer)

post-thumbnail

103.데이터베이스에 null값을 활용해도 될까?

post-thumbnail

104.@MockMVC를 활용해서 Controller 테스트를 해보자

post-thumbnail

105.SMS 기능을 만들어보자 -(1) 보안에 강한 랜덤 숫자 생성

post-thumbnail

106.우분투 rkhunter을 사용해보자(해킹흔적?...)

post-thumbnail

107.EC2 CPU 사용률이 90%까지 올라갔다?

post-thumbnail

108.LogWatch로 서버 로그를 모니터링하자-(1) (sysstat을 활용하자)

post-thumbnail

109.메모리 누수 해결하기 -(1) DB 커넥션 풀을 조정하자(메모리 사용량 절반으로 절감)

post-thumbnail

110.메모리 누수 해결하기 -(2) 원인을 좀더 명확하게 좁혀보자

post-thumbnail

111.admob 서버사이드 검증(SSV)를 진행하자

post-thumbnail

112.403이 발생하는 PATCH 프리플라이트 문제를 해결하자

post-thumbnail

113.S3 Mock 테스트를 진행해보자(use case를 정확하게 테스트하자)

post-thumbnail

114.JWT를 액세스/리프래시 토큰을 만들어보자 -(1) 이론적인 공부

post-thumbnail

115.Smtp 메일 보내기 API 타임아웃 문제, 비동기로 해결하자-(1)

post-thumbnail

116.JWT를 액세스/리프래시 토큰을 만들어보자 -(2) 기능을 구현하자

post-thumbnail

117.JWT를 액세스/리프래시 토큰을 만들어보자 -(3) 로그아웃과 블랙리스트를 구현하자

post-thumbnail

118.중복 결제 '따닥'을 어떻게 막을까?

post-thumbnail