티스토리챌린지 15

[내일배움캠프/백엔드] Spring 숙련. 뉴스 피드 프로젝트 3일차

HTTP 상태 코드 정리 -프로젝트 설계 피드백을 받을 때 팀에서 사용하는 HTTP 상태코드에 대한 정의가 내려진 문서도 있으면 좋을 것 같다고 들어서 사용하는 상태코드에 대해서 정리만 해봤다. 200 OK요청이 성공적으로 처리되었음응답 본문에 결과가 포함GET 요청이나 일부 PATCH 요청에서 사용201 Created요청이 성공적으로 처리되었음새로운 리소스가 생성POST 요청에서 사용204 No Content요청이 성공적으로 처리되었으나 응답본문에 데이터가 없음DELETE 요청에서 사용400 Bad Request요청 데이터가 유효하지 않거나 형식이 잘못된 경우401 Unauthorized인증되지 않은 사용자가 리소스에 접근하려고 할 때 사용로그인 되지 않은 상태에서 요청을 보낼 경우403 Forbidd..

[프로그래머스/ 코딩테스트 연습문제] 최대공약수와 최소공배수

Q. 최대공약수와 최소공배수A.class Solution {//코드 재사용성을 위해 최대공약수와 최소공배수는 메서드를 따로 분리해봄    public int[] solution(int n, int m) {//두 수 중 큰값 = max, 두 수 중 작은 값= min        int max = Math.max(n,m);        int min = Math.min(n,m);        //GCD : 최대공약수를 계산하는 메서드 호출, LCM : 최소공배수를 계산하는 메서드 호출         int gcd = getGCD(max,min);        int lcm = getLCM(max,min,gcd);        //answer = [최대공약수, 최소공배수]를 리턴해야하니까 배열로 반환     ..

[내일배움캠프/백엔드] Spring 숙련 뉴스 피드 프로젝트 Lv0. API 명세 및 ERD 작성

프로젝트 필수 기능 가이드 *프로젝트 목표-Spring Boot 와 JPA를 활용한 기능 개발-사용자와 친구 관계를 기반으로 최신 뉴스피드 데이터를 제공하는 시스템 구현-회원가입, 로그인, 인증, 친구관리, 게시물 관리 등 CRUD가 포함된 뉴스피드 시스템 설계 및 구현  1. 프로필 관리-프로필 조회 기능다른 사용자의 프로필 조회 시, 민감한 정보는 표시되지 않음-프로필 수정 기능로그인한 사용자는 본인의 사용자 정보만 수정할 수 있음비밀번호 수정 조건비밀번호 수정시, 본인 확인을 위해 현재 비밀번호를 입력하여 올바른 경우에만 수정할 수 있음현재 비밀번호와 동일한 비밀번호로는 변경할 수 없음예외처리비밀번호 수정시, 본인 확인을 위해 입력한 현재 비밀번호가 일치하지 않은 경우비밀번호 형식이 올바르지 않은 ..

[프로그래머스/ 코딩테스트 연습문제] 행렬의 덧셈

Q. 행렬의 덧셈A.class Solution {    public int[][] solution(int[][] arr1, int[][] arr2) {//arr1과 arr2 두개의 배열 크기가 같으니까 answer 배열의 크기도 같게 만들어줘야함//[arr1.length] : 행의 길이(개수)//[arr1[0].length] : 열의 길이(개수)        int[][] answer = new int[arr1.length][arr1[0].length];        //i가 0부터 배열의 행의 길이만큼 1씩 증가하면서 answer에 값을 넣음        for(int i=0; i//j가 0부터 배열의 열의 개수만큼 1씩 증가하면서 answer에 값을 넣음            for(int j=0; j..

[프로그래머스/ 코딩테스트 연습문제] 문자열 다루기 기본

Q. 문자열 다루기 기본A.class Solution {    public boolean solution(String s) {        boolean answer = true;        //문자열의 길이 확인//문자열의 길이가 4 혹은 6이 아닌경우 false 반환        if(s.length() != 4 && s.length() !=6){            answer = false;        }        //문자열의 길이가 true일 경우 다음 조건문 실행//charAt을 사용하여 문자를 하나씩 검사        for(int i=0; i //문자열 s에서 i번째 문자를 가져와서 검사            char c = s.charAt(i);//c가 0보다 작고, 9보다 클 경우..

[프로그래머스/ 코딩테스트 위클리 챌린지] 부족한 금액 계산하기

Q. 부족한 금액 계산하기A.class Solution {    public long solution(int price, int money, int count) {        long answer = -1;//놀이기구를 탄 총 금액 : sum        long sum = 0;        //놀이기구를 탄 총 금액을 구하기 위해 for 문 사용//놀이기구 이용료 * 놀이기구를 이용한 횟수를 모두 더한 값 = 놀이기구를 탄 총 금액//1번 탔을 때부터 count번 탔을 때까지 i를 1씩 증가하면서 price와 곱해준 후에 sum에 값을 더해줌        for(int i=1; i            sum += price * i;        }        //만약 가진 금액이 놀이기구를 이용한 ..

[내일배움캠프/백엔드] Spring 숙련 개인과제 일정 관리 앱 develop 트러블 슈팅

- 어떤 현상을 발견했는가?1. deleteSchedule 반환 타입 오류 2. Entity 이름 중복 3. Auditing 설정 문제  이런 장애가 생길 수 있다는 것을 인지1. deleteSchedule 반환 타입 오류-deleteSchedule은 삭제 메소드이기 때문에 삭제만 수행하고 데이터를 반환하지 않아도 되는데 반환타입을 Schedule로 잘못 설정함. 2. Entity 이름 중복-Hibernate에서 @Entity를 사용할 때 클래스 이름이 중복되는 경우 두 entity를 동일한 이름의 테이블로 인식함.-이때, entityManagerFactory의 bean 생성 중 BeanCreationException이 발생.-애플리케이션 실행 실패 3. Auditing 설정 문제-Spring Data ..

[프로그래머스/ 코딩테스트 연습문제] 문자열 내림차순으로 배치하기

Q. 문자열 내림차순으로 배치하기A.import java.util.Arrays;import java.util.Collections;class Solution {    public String solution(String s) {//문자열을 배열로 변환//내림차순 Collections.reverseOrder를 사용하기 위해 래퍼클래스 배열로 생성        Character[] arr = new Character[s.length()];//for문을 사용해 배열에 문자를 하나씩 넣음        for(int i=0; i            arr[i] = s.charAt(i);        }        //배열 arr를 내림차순 정렬//대문자는 소문자보다 작은 것으로 간주//Collections.re..

[프로그래머스/ 코딩테스트 월간코드챌린지 시즌2] 약수의 개수와 덧셈

Q. 약수의 개수와 덧셈A.class Solution {    public int solution(int left, int right) {        int answer = 0;        //left에서 right 사이의 모든 수를 i에 대입해서 사용        for(int i=left; i//약수의 개수를 세야하니까 count를 선언해서 사용            int count = 0;            //약수 개수 구하기//1부터 i까지 1씩 증가하면서 나눠서 나머지가 0이면 약수//약수일 경우 count를 증가시킴            for(int j=1; j                if(i%j == 0){                    count++;              ..