본문 바로가기

전체 글204

[내일배움캠프] SQL Daily Routine 67. 주문량이 많은 아이스크림들 조회하기 안녕하세요.67회차 과제 주문량이 많은 아이스크림들 조회하기입니다.문제 설명다음은 아이스크림 가게의 상반기 주문 정보를 담은 FIRST_HALF 테이블과 7월의 아이스크림 주문 정보를 담은 JULY 테이블입니다.FIRST_HALF 테이블 구조는 다음과 같으며, SHIPMENT_ID, FLAVOR, TOTAL_ORDER는 각각 아이스크림 공장에서 아이스크림 가게까지의 출하 번호, 아이스크림 맛, 상반기 아이스크림 총주문량을 나타냅니다.FIRST_HALF 테이블의 기본 키는 FLAVOR입니다. FIRST_HALF테이블의 SHIPMENT_ID는 JULY테이블의 SHIPMENT_ID의 외래 키입니다. JULY 테이블 구조는 다음과 같으며, SHIPMENT_ID, FLAVOR, TOTAL_ORDER 은 각각 아이.. 2024. 12. 3.
[내일배움캠프] 알고리즘 Daily Routine 66. 대충 만든 자판 안녕하세요.66회차 과제 대충 만든 자판입니다.문제휴대폰의 자판은 컴퓨터 키보드 자판과는 다르게 하나의 키에 여러 개의 문자가 할당될 수 있습니다. 키 하나에 여러 문자가 할당된 경우, 동일한 키를 연속해서 빠르게 누르면 할당된 순서대로 문자가 바뀝니다.0예를 들어, 1번 키에 "A", "B", "C" 순서대로 문자가 할당되어 있다면 1번 키를 한 번 누르면 "A", 두 번 누르면 "B", 세 번 누르면 "C"가 되는 식입니다.0같은 규칙을 적용해 아무렇게나 만든 휴대폰 자판이 있습니다. 이 휴대폰 자판은 키의 개수가 1개부터 최대 100개까지 있을 수 있으며, 특정 키를 눌렀을 때 입력되는 문자들도 무작위로 배열되어 있습니다. 또, 같은 문자가 자판 전체에 여러 번 할당된 경우도 있고, 키 하나에 같은.. 2024. 12. 3.
[내일배움캠프] 트러블 슈팅 이번 과제는 레거시 코드를 리펙토링해보는 과제였습니다.트러블 슈팅1. 과제 파일 실행 시 에러 발생 문제 발생과제를 받아 실행을 했을 때 에러가 발생하였습니다.UnsatisfiedDependencyException 문제 원인filterConfig에서 jwtUtil의 bean을 생성하지 못했습니다.민감정보 보호를 위해 gitignore에 .properties가 등록되어있어 fork 받은 파일에 properties 파일이 없었기에 jwt.secret.key도 없었기 때문이었습니다. 해결 방법application.properties 파일을 만들어 jwt.secret.key를 등록하였습니다.이후 .properties에 비해 .yml이 계층구조가 명확하여 가독성이 더 좋다고 판단하여 변경하였습니다.2. 날짜 Ty.. 2024. 11. 20.
[내일배움캠프] 심화 과제 진행해보기 Lv .2 플러스 주차 개인 과제를 진행하며 기록을 남겨보기 위해 글을 작성합니다.이번 과제는 레거시 코드를 리펙토링해보는 과제입니다.레거시 코드-. 레거시 코드는 개발된 지 오래되어서 최신 기술이나 표준과는 다소 맞지 않는 코드를 뜻합니다.레거시 코드를 리펙토링해보면-. 레거시 코드를 리펙토링 하기 위해서는 먼저 코드를 확실히 이해하고있어야 하기 때문에 리펙토링을 해보며 코드를 이해하고 분석하는 능력을 키울 수 있습니다.Level. 26. JPA Cascade앗! 실수로 코드를 지웠어요!@OneToMany(mappedBy = "todo")private List managers = new ArrayList();할 일을 새로 저장할 시, 할 일을 생성한 유저는 담당자로 자동 등록되어야 합니다.JPA의 cascade .. 2024. 11. 18.
[내일배움캠프] TIL : 관점 지향 프로그래밍 AOP AOPAOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)은 제가 이해한 대로 표현하자면"여러 클래스나 메소드에서 반복적으로 사용되는 코드(CrossCutting Concerns, 흩어진 관심사)를 분리하여 모듈화하는 것"이라고 말할 수 있을 것 같습니다.이를 통해 코드의 가독성을 올리고 유지보수가 좀 더 쉬워질 것이라고 생각합니다.AOP의 주요 개념-. Aspect: 흩어진 관심사를 모듈화한 단위입니다. -. Join Point: AOP가 적용될 수 있는 지점을 말합니다. 메서드 호출, 필드 접근, 예외 처리 등이 해당 지점이 될 수 있습니다.: Spring AOP에서는 메서드 실행만이 조인 포인트로 지원됩니다. -. Pointcut: AOP를 적용할 실제 지점을 정의하는 .. 2024. 11. 18.
[내일배움캠프] SQL Daily Routine 66. 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 안녕하세요.66회차 과제 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기입니다.문제 설명다음은 중고거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고거래 게시판 첨부파일 정보를 담은 USED_GOODS_FILE 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS은 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다.USED_GOODS_FILE 테이블은 다음과 같으며 FILE_ID, FILE_EXT, FILE_NAME, BOARD_ID는 각각 파일 ID, 파일 확장자, 파일 이름, 게시.. 2024. 11. 18.
[내일배움캠프] 알고리즘 Daily Routine 65. 문자열 나누기 안녕하세요.65회차 과제 문자열 나누기입니다.문제문자열 s가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 합니다.0먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다.이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서, x와 x가 아닌 다른 글자들이 나온 횟수를 각각 셉니다.처음으로 두 횟수가 같아지는 순간 멈추고, 지금까지 읽은 문자열을 분리합니다.s에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복합니다. 남은 부분이 없다면 종료합니다.제한 사항1 ≤ s의 길이 ≤ 10,000s는 영어 소문자로만 이루어져 있습니다.풀이class Solution { public int solution(String s) { char firstS = ' '; .. 2024. 11. 15.
[내일배움캠프] SQL Daily Routine 65. 우유와 요거트가 담긴 장바구니 안녕하세요.65회차 과제 우유와 요거트가 담긴 장바구니입니다.문제 설명CART_PRODUCTS 테이블은 장바구니에 담긴 상품 정보를 담은 테이블입니다.CART_PRODUCTS 테이블의 구조는 다음과 같으며, ID, CART_ID, NAME, PRICE는 각각 테이블의 아이디, 장바구니의 아이디, 상품 종류, 가격을 나타냅니다.문제데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다.우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요.이때 결과는 장바구니의 아이디 순으로 나와야 합니다.풀이-- cart_id-- 우유와 요거트를 동시에 구입-- cart_id ascselect cart_idfrom(select cart_.. 2024. 11. 15.