전체 글

🗂️ 문제 링크: https://www.acmicpc.net/problem/1167 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 😎 내 풀이 import sys N, M = map(int, sys.stdin.readline().split()) arr = [sys.stdin.readline().rstrip() for _ in range(N)] word_dict = {} for i in arr: # 단어의 길이가 M 이상인 단어만 단어장에 저장 if len(i) < M: continue if ..
🗂️ 문제 문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 제한사항 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보..
Lv1. 12세 이하인 여자 환자 목록 출력하기 🗂️ 문제 PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요. 😎 내 풀이 SELECT PT_NAME,PT_NO, GEND_CD, AGE, IFNULL(TLNO, 'NONE') as TLNO FROM PATIENT WHERE AGE = 20 AND AGE 1 ORDER BY USER_ID, PRODUCT_ID DESC 🧐 배운 점 GROUP BY USER_ID, PRODUCT_ID 유형별로 개수를 알고 싶을 때는 컬럼에..
MockMvc를 이용하여 Controller 테스트 코드를 작성한다. 테스트할 코드는 form-data 형식으로 이미지 파일과 텍스트를 입력 받아 유저 리소스를 수정하는 PATCH 메서드이다. 1. MockMultipartFile 객체 생성 MockMultipartFile file = new MockMultipartFile( "홍길동전 썸네일 이미지", "thumbnail.png", MediaType.IMAGE_PNG_VALUE, "thumbnail".getBytes() ); MockMulipartFile은 MultipartFile 인터페이스를 상속 받는 가짜 객체다. multipart 파일을 업로드하는 컨트롤러 테스트에 사용된다. 2. 요청 mockMvc.perform( multipart(HttpMet..
문제 배경 내가 작성한 리뷰를 조회하는 API를 스프링 데이터 JPA의 페이징 처리를 통해 구현했다. 현재 API를 호출했을 때 실행되는 SQL 쿼리문을 보면 N+1 문제가 발생한다. 실행되는 SQL 쿼리문 2024-02-11 18:31:29.479 INFO 29300 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2024-02-11 18:31:29.479 INFO 29300 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServl..
· Etc
필터를 이용하여 서블릿에서 예외 처리를 하는 과정에서 출력되는 로그를 상세히 분석해 보고자 한다. 서블릿에서 예외 처리를 하는 과정의 흐름은 다음과 같다. WAS(여기까지 전파) ← 필터 ← 서블릿 ← 인터셉터 ← 컨트롤러(예외발생) WAS /error-page/500 다시 요청 → 필터 → 서블릿 → 인터셉터 → 컨트롤러(/error-page/500) → View 이를 기반으로 코드를 작성하고, 이를 수행하는 과정에서 출력되는 로그를 단계적으로 살펴볼 예정이다. 예외 처리를 위해 필요한 클래스 ServletExController - 클라이언트에 의한 요청 처리 컨트롤러 package hello.exception.servlet; import lombok.extern.slf4j.Slf4j; import o..
본 게시글은 김영한 강사님의 [스프링 핵심 원리 - 기본편]을 수강하며 작성한 글입니다. 스프링 컨테이너 생성 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext는 스프링 컨테이너이다. 이는 인터페이스인데, 이를 구현한 클래스가 AnnotationConfigApplicationContext이다. 스프링 컨테이너는 XML로도, 애노테이션 기반의 자바 설정 클래스로도 만들 수 있다. 💡 더 정확히는 스프링 컨테이너를 부를 때 BeanFactory, ApplicationContext로 구분한다. 뒤에서 더 자세히 배우겠지만, BeanF..
· DevOps/AWS
1. RDS DB 생성 1. 데이터베이스 생성 방식은 표준 생성으로 선택 2. 엔진 옵션은 MySQL로 선택 3. 템플릿은 프리티어로 선택 4. DB 이름, 사용자 이름, 암호 설정 5. 연결 설정에서 퍼블릭 액세스 기능을 가능하게 하고 새 보안 그룹 생성하기 6. 추가 구성 설정에서 초기 데이터베이스 이름 설정하기 2. RDS 인바운드 규칙 설정 1. RDS를 클릭해서 보안 그룹으로 이동하고 인바운드 규칙 편집 버튼을 클릭한다. 2. 인바운드 규칙을 추가한다. 유형: MYSQL/Aurora 돋보기: EC2 인스턴스 보안 그룹 3. RDS 접속 테스트 MySQL 워크벤치를 통해 연결을 테스트한다. Hostname: RDS 인스턴스의 엔드포인트 Username: 마스터 사용자 이름 Password: 마스터..
jyjyjy25
기록하는 습관