분류 전체보기 76

[트러블 슈팅] Spring 뉴스 피드 프로젝트

1. Git 충돌 해결1) 개요develop 브랜치에서 동시에 작업을 진행하면서 push, pull 하는 과정에서 다른 팀원이 작성한 내용을 pull로 가져올 때, 현재 작업하고 있던 내용과 충돌이 발생 2) 문제상황-모든 작업을 develop 브랜치에서 직접 진행을 하면서 문제가 생김-작업 중 서로 다른 파일을 수정하면서 충돌이 발생 3) 해결-작업을 개별 브랜치 feature에서 진행하도록 변경-작업 완료 후, 로컬에서 develop 브랜치로 병합하고, 충돌이 있다면 로컬에서 해결한 후에 git push-develop이 최신화되면 브랜치를 pull 받아 최신으로 유지하고 다시 feature에서 개발1. feature 브랜치 생성git checkout -b feature/2. 로컬에서 작업 후 병합gi..

[프로그래머스/ 코딩테스트 월간코드챌린지 시즌1] 3진법 뒤집기

Q. 3진법 뒤집기A.class Solution {    public int solution(int n) {//3진법으로 변환한 것을 문자열로 저장하기 위해서 str 선언        String str = "";        //3진법 변환//3으로 나눈 나머지 값을 저장하면 자연스럽게 거꾸로 저장됨//나머지를 문자열로 추가한 후에 다시 n에 3을 나눠서 몫으로 만들어줌//n이 0이 되기전까지 반복 = 3진법으로 변환되면 종료        while (n != 0){            str += n % 3;            n /= 3;        }        //문자열 str을 3진법으로 해석하여 10진법으로 변환        int answer = Integer.parseInt(str,..

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

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 = [최대공약수, 최소공배수]를 리턴해야하니까 배열로 반환     ..

[TIL] 일정 관리 앱 만들기 & 기능 구현 develop

진행 날짜 : 2024.11.12 ~ 2024.11.15 프로젝트 요약 1. 프로젝트 목적일정관리 앱 개발을 통해, RESTful API 설계 및 JPA 기반 CRUD 구현(데이터베이스 관리), 데이터 검증, 인증 기능 학습Cookie/ Session 을 활용한 인증/인가 로직 학습과 데이터 유효성 검증데이터 검증 및 비지니스 로직 분리로 유지보수성 연습기본적인 보안 개념과 인증 매커니즘을 명확히 이해2. 프로젝트 구현 단계Lv0 : 프로젝트 설계API 명세서 작성 : postman 사용ERD 작성 SQL 작성 : root 경로에 schedule.sql 만들어서 작성Lv1 : 일정 CRUD일정 저장, 조회, 수정, 삭제 기능 구현일정 필드작성 유저명, 할일 제목, 할일 내용, 작성일, 수정일작성/수정일 ..

[프로그래머스/ 코딩테스트 연습문제] 직사각형 별 찍기

Q. 직사각형 별 찍기A.import java.util.Scanner;class Solution {    public static void main(String[] args) {//스캐너를 사용해서 사용자에게 값 입력받기        Scanner sc = new Scanner(System.in);        int n = sc.nextInt(); //가로 길이        int m = sc.nextInt(); //세로 길이//가로 n 세로 m 일때 반복하려면 이런 형식으로 반복되야함//세로가 0일때 가로 n 반복//세로가 1일때 가로 n 반복 ...//세로 반복문        for(int i=0; i//가로 반복문            for(int j=0; j//가로 반복이니까 줄바꿈 하면 안됨 ..

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

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..