본문 바로가기

개발22

프로젝트 리팩토링 - 1. Controller 책임 분리, @ModelAttribute, @Valid 최근 이펙티브 자바, 그리고 Sonarqube를 이용한 코드 품질 분석에 대해 공부하며제 예전 코드를 리팩토링 하고 있습니다. 예전 코드를 이런 공개된 공간에 올린다는게 부끄럽지만 그 과정을 게시글에 담아보려고 합니다. 첫 백엔드 프로젝트에서 저는 지금 보면 부끄러운 코드를 작성했습니다. 🙈아래 코드는 그 당시 Controller가 거의 모든 책임을 떠안고 있던 코드입니다.@GetMappingpublic ResponseEntity getAuctions( @RequestParam(value = "gender", required = false) Gender gender, @RequestParam(value = "size", required = false) String size, @Reque.. 2025. 3. 25.
백준 9095번 - 1, 2, 3 더하기 (파이썬/Python) 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 답안 T = int(input()) for _ in range(T): num = int(input()) dp = [0] * 11 dp[1] = 1 dp[2] = 2 dp[3].. 2024. 2. 13.
백준 11650번 - 좌표 정렬하기 (파이썬/Python) 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 답안 # lambda를 이용해 0,1순으로 정렬해줬다. t = int(input()) arr = [] for _ in range(t): xy = list(map(int, input().split())) arr.append(xy) arr.so.. 2024. 2. 7.
백준 1181번 - 단어 정렬 (파이썬/Python) 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 단, 중복된 단어는 하나만 남기고 제거해야 한다. 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 답안 T = int(input()) arr = [] for _ in range(T): word = input() arr.append(word) answer = list(set(arr)) # 중복제거 후 다시 리스트로 변환 answer.sort() .. 2024. 2. 6.