TIL에 해당하는 글 39

  1. @Conditional 로 특정 빈 등록 조건 만들기 2025.03.21

    테스트 환경에서는 실행되지 않아야 하는 파일이 있을 수 있다.그럴 때? @Conditional 어노테이션을 사용하면 쉽게 조건을 만들어서 구현할 수 있다. @Conditional 어노테이션은 정의된 조건에 맞춰 빈 등록을 할 지 말지 정해준다.예를 들어서, 개발 환경에서만 따로 로그를 찍는 빈이 있다고 해 보자. 간단히 Condition을 구현해서, matches 함수를 오버라이드하면 커스텀 조건을 작성할 수 있다.true를 리턴하는 조건에서 Conditional 조건을 만족하여 작동하게 된다.아래는 실행시 지정한 프로파일이 dev 일 때만 true를 리턴한다.public class LoggingCondition implements Condition { @Override public boole..


  2. JPAㅠ 2025.03.14

    보호되어 있는 글입니다.


  3. [Gradle] --project-prop 옵션으로 특정 파일 제외하여 빌드하기 2025.03.07

    이번에 Swagger를 활용해 API 문서를 작성하면서,개발 서버에서만 쓰이는 내부용 컨트롤러에 아예 접근할 수 없도록 처리할 필요가 있었다. @Hidden, @Profile 등 여러 방법을 찾아 보다 gradle로 아예 파일 자체를 빼고 빌드하기로 했다. https://docs.gradle.org/current/userguide/command_line_interface.html#sec:environment_options Command-Line Interface ReferenceGradle provides several built-in tasks which show particular details of your build. This can be useful for understanding your bu..


  4. 세션 관리 삽질 2025.02.25

    보호되어 있는 글입니다.


  5. 무중단 배포 삽질 2025.02.13

    보호되어 있는 글입니다.


  6. Cacheable 삽질 2025.02.05

    서버 내에서 자주 쓰이는 값을 캐싱처리해야 할 일이 있었다.단순히 String이 아니라, 좀 더 편하게 꺼내 쓰기 위해 자바 객체로 담아 redis 캐시로 저장하기로 했다! 하지만...DefaultSerializer requires a Serializable payload but received an object of type... 기본 직렬화를 하기 위해서는 Serializable한 데이터가 있어야 한다는 에러 메시지가 떴다. redis에 캐시를 저장할 때, redis는 데이터를 hash해서 저장한다.그렇기 때문에, redis에 저장할 클래스는 Serializable을 implement해서 만들어야한다! Servlet.service() for servlet [dispatcherServlet] in co..


  7. MSA 도커 컨테이너 2024.12.05

    보호되어 있는 글입니다.


  8. docker-compose.yml로 Redis 컨테이너 올리기 2024.12.05

    redis 데이터베이스에 비밀번호를 추가하고 도커 컨테이너로 레디스를 띄우는 방법을 알아보자. docker-compose.yml 설정우선 redis에서 비밀번호를 입력해야 하도록 설정한다.redis.conf에서 아래 부분의 주석을 해제하고, foobared 를 사용할 비밀번호로 바꿔 입력하면 비밀번호 설정 끝!# requirepass foobared 그리고 docker-compose.yml은 아래처럼 작성한다.services: redis: image: redis:latest container_name: redis-workspace ports: - "6379:6379" volumes: - {호스트 머신 내 디렉토리}/redis.conf:/usr/local/conf/..


  9. @JsonManagedReference와 @JsonBackReference 2024.10.31

    보호되어 있는 글입니다.