본문 바로가기

전체 글

(138)
Controller 전역 예외 처리(Custom Exception) / 2022-02-10 사용자의 id가 없을 경우를 대비해 에러를 만들어서 멘트를 보여주자!고 하다가 다른 여러 개의 에러들을 custom 해봤다. 똑같은 id를 가진 유저를 생성하려는 경우 없는 id를 가진 유저를 찾는 경우 크게 두가지로 나누어졌다. 그외 나머지 에러는 handler를 통해 처리했다. exception.ErrorCodeEnum package com.second.spring_study.exception.ywoo; import lombok.AllArgsConstructor; import lombok.Getter; import org.springframework.http.HttpStatus; @Getter @AllArgsConstructor public enum ErrorCodeEnum { USER_NOT_FOU..
회원 정보 수정 / 2022-02-09 회원의 id를 템플릿 변수로 받고, 변경할 이름과 비밀번호를 body로 받아 수정했다. RequestBody를 통해 들어오는 데이터의 정보 형식을 맞추기 위해 dto를 작성했다. UserRequestUpdateDto package com.second.spring_study.dto.request.ywoo; import com.sun.istack.NotNull; import lombok.*; @Getter @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) public class UserRequestUpdateDto { @NotNull String user_password; @NotNull String user_name; } 형식 {..
회원 전체 조회 및 상세 조회 / 2022-02-08 User에 관한 정보를 Response 해줄 때 형식을 맞추기 위해 DTO를 사용하였다. UserResponseDto @Builder @Getter public class UserResponseDto { private Long id; private String user_id; private String user_name; private String user_password; //of를 사용해 entity to of public static UserResponseDto of(UserYwoo userYwoo){ return UserResponseDto.builder() .id(userYwoo.getId()) .user_id(userYwoo.getUser_id()) .user_name(userYwoo.getU..
회원 삭제 기능 / 2022-02-07 controller.UserYwooController @DeleteMapping("/{id}") public void deleteUser(@PathVariable long id){ userYwooService.deleteUser(id); } @ 어노테이션 @DeleteMapping Http Request를 Delete 방식으로 보낼 때 사용한다. 정상적으로 삭제하면 별다른 return값이 없지만 삭제할 유저가 없는 경우 에러가 난다. @PathVariable URL 경로에 변수를 넣어준다. {템플릿 변수} 와 동일한 이름을 갖는 파라미터를 추가하면 매핑된다. service.UserYwooService private final UserYwooRepository userRepository; .. @Trans..
2022-01-12 / 영어 끝말잇기 문제 설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 한 글자인 단어는 인정되지 않습니다. 다음은 3명이 끝말잇기를 하는 상황을 나타냅니다. tank → kick → know → wheel → land → dream → mother → robot → tank 위 끝말잇기는 다음과 같이 진행됩니다. 1번 사람이 자신의 첫 번째 차례에 tank를 말합니다. 2번 사람이 자신의 첫 번째 차례에 ..
2022-01-11 / 짝지어 제거하기 문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사항 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있습니다. ..
2022-01-10 / 프린터 문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 ..
2022-01-09 / 124 나라의 숫자 문제 설명 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법 124 나라 10진법 124 나라 1 1 6 14 2 2 7 21 3 4 8 22 4 11 9 24 5 12 10 41 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요. 제한사항 n은 500,000,000이하의 자연수 입니다. 입출력 예 n result 1 1 2 2 3 4 4 11 기본 코드 class Soluti..