CHAR vs VARCHAR 데이터를 저장하고 조회하는 방식에서 차이가 있음 또한, 최대 길이와 후행 공백(trailing spaces) 유지 여부에서도 차이가 있음 엄격한(Strict) SQL 모드가 활성화되어 있지 않은 경우, CHAR 또는 VARCHAR 열에 해당 열의 최대 길이를 초과하는 값을 할당하면, 그 값은 열의 크기에 맞게...
Spring - @Transactional 살펴보기 (1) - AOP Proxy
AOP Proxy 스프링 : https://docs.spring.io/spring-framework/reference/core/aop/introduction-proxies.html 스프링 부트 : https://docs.spring.vmware.com/spring-boot/docs/3.0.14/reference/htmlsingle/#featur...
WEB - nginx 처리율 제한 살펴보기
nginx는 처리율 제한을 위해 ‘leaky bucket algorithm’ 사용 leaky bucket algorithm 물 : 사용자 요청 버킷 : 요청이 대기하는 큐 넘치는 물 : 큐가 다 차서 거절되는 요청 새는 물 : 서버에 의해 처리되는 요청 limit_req_z...
자바에서 null 처리에 대해 생각해보기
나는 언제 주로 null을 사용했을까 ? 참조값이 ‘없음’을 표현하는 경우 따라서, 보통 아래와 같이 코드를 작성하게 되는 것 같다. if (obj != null) { // do something } if (obj == null) { // null인게 비정상적인 상황이라면 적절한 예외 발생시키기 } // do somet...
Controller는 어떤 부분을 테스트 해야할까 ?
웹 서비스에서 보편적으로 사용되는 레이어 구조(Controller - Service - Repository)에서 Controller는 어떤 부분을 테스트하면 좋을지 생각해보자. 테스트 코드의 필요성 ? 내가 생각하기에 테스트 코드가 필요한 이유는 크게 두 가지가 있을 것 같다. 코드가 변경됐을 때, 변경된 부분은 의도한대로 잘 ...
Spring - Spring Rest Docs란 ?
Spring REST Docs RESTful 서비스를 문서화하는 데 도움을 주는 도구 Asciidoctor로 작성한 수동 문서와 Spring MVC Test를 통해 자동 생성된 스니펫을 결합하여 사용 Spring WebFlux의 WebTestClient나 REST Assured 5 사용도 가능 이 프...
OS - 리눅스 Load Average 살펴보기
Load Average ? 리눅스의 load average는 시스템 전체의 부하 평균을 나타내며, 실행 중이거나 대기 중인 스레드(태스크)의 수를 평균으로 나타낸 것. 즉, 실행 가능한(runnable) 태스크뿐만 아니라, uninterruptible sleep 상태(중단 불가능한 대기 상태)에 있는 태스크들도 추적 역사 처음엔 실...
iframe이 열리지 않는 이슈 (ancestor violates the following Content Security Policy directive)
상황 기존에는 http://alpha.domain.com 부모창에서 http://alpha-foo.domain.com iframe을 사용하는 시스템에서, 특정 작업으로 인해 http://alpha.domain.com 부모창에서 https://test.alpha-foo.domain.com iframe을 사용하게 되었는데, 콘솔에 다음과 같은 에...
WEB - Content-Security-Policy(CSP) 살펴보기
Content-Security-Policy ? 콘텐츠 보안 정책(CSP)은 특정 유형의 보안 위협의 위험을 방지하거나 최소화하는 데 도움이 되는 기능으로 웹사이트에서 브라우저로 보내는 일련의 지침으로 구성되어 있으며, 브라우저에서 코드가 수행할 수 있는 작업에 제한을 두도록 지시 CSP 전달 방식 HTTP 응답 헤더 ...
Hello 2025
지난 시간들을 되돌아보며 다짐해본다. 감사하자. 겸손하자. 꾸준하자. 넓게보자. 진짜가 되자.