바쁜 현대인을 위한 세 줄 요약 문제 Spring Security와 커스텀 SecurityFilterChain 적용 후 @WebMvcTest를 적용한 테스트 코드가 테스트를 통과하지 못했습니다. 아래는 내가 추가한 SecurityFilterChain 빈 설정 클래스입니다. @Configuration @EnableWebSecurity public class WebSecurityConfig { @Bean public SecurityFilterChain securityFilterChain( HttpSecurity http, TokenAuthenticationFilter tokenAuthenticationFilter ) throws Exception { return http .csrf(AbstractHttpCo..
❓ 문제 Swagger UI를 github page로 배포하려 하였으나 배포가 되지 않았습니다. ⚙️ 상황 저희 팀은 이슈를 만들고 이슈에 대한 브랜치를 자동으로 생성해주는 GitHub의 기능을 사용하고 있었습니다. 브랜치의 이름은 이슈 이름과 번호의 조합이었고 이슈 이름은 한국어로 작성했습니다. Swagger UI는 다음 레포지토리의 방법을 참고하여 사용했습니다. GitHub - peter-evans/swagger-github-pages: How to host Swagger API documentation with GitHub Pages How to host Swagger API documentation with GitHub Pages - GitHub - peter-evans/swagger-github..
개발을 하다보면 시스템에 필요한 상수가 존재합니다. ex)비밀키 이를 속성 파일(application.yml)이나 환경 변수로 빼서 관리할 수 있습니다. 외부에서 필요한 상수를 관리하면 Java 소스코드를 재컴파일 하지 않아도 값을 변경할 수 있고 실행 환경에 따라 다른 값을 설정할 수도 있습니다. 저는 위와 같은 경우 보통 다음과 같이 사용했습니다. @Value("${prefix.value}") private String value; 하지만 위 방식은 문제가 있습니다. @Value 어노테이션 동작 방식 어떤 문제가 있는지 알아보기 전에 잠시 @Value 어노테이션의 동작 방식을 알아봅시다. @Value 어노테이션은 Spring IoC 컨테이너의 DI 과정과 비슷한 규칙으로 동작합니다. 필드에 작성한 어..
테스트를 할 때 테스트 클래스를 만들고 메소드를 만들어 테스트를 한다. 이 때 네이밍해야 할 요소는 크게 두가지이다. 테스트 클래스 이름 테스트 메소드 이름 단위 테스트라면 테스트 클래스의 이름은 테스트하고자 하는 클래스 이름 뒤에 Test를 붙이는게 일반적이다. 메소드의 경우 테스트하고자 하는 클래스의 public 메소드의 이름을 그대로 사용할 수 있다. 예시로 인자로 주어진 언어(Language)에 따라 다른 인사말을 반환하는 클래스가 있다. public class Hello { public String hello(Language language) { if (language == Language.KOREAN) { return "안녕하세요"; } return "Hello"; } enum Language..
이펙티브 자바를 읽다가 Comparator 인터페이스 코드를 봤습니다.근데 @FunctionalInterface 어노테이션이 붙어있음에도 불구하고 두 개의 추상 메서드를 가지고 있는 겁니다!!package java.util;@FunctionalInterfacepublic interface Comparator { // abstract method int compare(T o1, T o2); // abstract method boolean equals(Object obj); // few default and static methods} 헉 진짜 두 개네..! 사실 Java를 조금 만져보신 분들은 눈치를 채셨을 텐데요. 두 번째 추상 메서드가 equals 메서드라는 점이 눈에 띄었을 겁니다. 이점을 ..
6주차랑 7주차를 어디 두고 8주차가 되었는가 하면... 지난 회고에서 언급한 국방 데이터 공모전이 바빠지면서 앞만 보고 달렸기 때문이랍니다😭 그래도 팀장님의 쪼기 리더쉽 덕분에 배포까지 마쳤습니다! API 요청 제한 있으니까 너무 많이 놀러 오지는 마세요 MILROUTE 공유기능 | 군인들을 위한 최소 시간 경로 찾아주기 milroute.s3-website.us-east-2.amazonaws.com 공모전 막판은 밤샘의 연속이었지만... 처음으로 백엔드 전반의 코드를 다뤘고 배포도 성공적으로 마쳤습니다! 근데 솔직히 혼자 너무 많은거 한 거 아냐??? 어쨌든 이번 회고는 3주치 회고입니다! 📍 Keep TIL 3주간 나름 기록을 잘 남겼습니다! 공모전에 집중하는 기간에도 고민이 생기면 바로 기록하고 래..
저번주는 예비군 핑계로 회고를 미뤘는데... 이번주는 공모전을 핑계 대야겠네요 ㅎ 구름톤 트레이닝 풀스택 과정을 진행하고 있지만 이번주는 공모전 준비만 했네요 📍 Keep Learning with Doing을 실천 중입니다! 국방부 공공데이터 공모전 출품 준비를 하면서 백엔드 개발을 하고 있습니다. 혼자 백엔드를 맡은 적은 처음이라 많이 고생하지만 그만큼 배우는 게 있어서 나름 재미있게 코딩하고 있습니다! 🗑️ Problem 공모전 개발 기간이 짧기 때문에 구름톤 트레이닝 시간에도 개발을 하고 있습니다. 그러다 보니 수업을 못 따라가 과정에 참여하는 의미가 많이 흐려지는 것 같습니다... 그래서 조금 바쁘더라도 오전 시간에는 최대한 수업을 듣기로 결정했습니다! 🔥 Try 오전 시간 활용하기 구름톤 트레이..
🎨 문제 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net 📘 풀이 이 문제는 DP로 풀 수 있습니다. 우선 LCS(Longest Common Subsequence)를 예시로 이해해봅시다. 우선 두 문자열이 주어집니다. (더 많을 수도 있지만 문제에서는 2개가 주어집니다.) ACAYKP CAPCAK 서브 시퀀스는 주어진 문자열에서 순서를 바꾸지 않고 몇 개의 글자를 뺀 것을 말합니다. 첫 번째 문자열의 경우 ACA, AKP, C 등이 서브 시퀀스가 됩니다. LCS는 ..