본문 바로가기

프로젝트 & TIL/일별 공부 기록 (백엔드 스쿨)

(98)
59일차 - 프로그래머스 문제 풀이, JWT https://school.programmers.co.kr/learn/courses/30/lessons/92343 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 https://yurison.tistory.com/373 [프로그래머스/자바] 양과 늑대 (작성 중) yurison.tistory.com JWT - 최근에는 웹브라우저-서버 뿐만 아니라 앱-서버 접근이 많아졌다. => 앱은 쿠키 기능이 기본적으로 제공되지 않는다. - JWT 토큰은 정보를 담을 수 있고, 유효성 체크에 DB 조회를 수반하지 않는다. JWT를 사용하는 이유(ChatGPT ..
58일차 - 토스페이먼츠, 프로그래머스 문제 풀이 https://app.tosspayments.com/ 토스페이먼츠 전자결제 app.tosspayments.com https://docs.tosspayments.com/preview/1 체험하기 | 토스페이먼츠 개발자센터 토스페이먼츠의 간편한 결제 연동 과정을 한눈에 볼 수 있습니다. 각 단계별 설명과 함께 달라지는 UI와 코드를 확인해보세요. docs.tosspayments.com 토스페이먼츠 연동 https://github.com/tosspayments/payment-samples/tree/main/payment-window/springboot GitHub - tosspayments/payment-samples Contribute to tosspayments/payment-samples developm..
57일차 - 코테, 스프링부트 프로젝트 참고 사항 https://school.programmers.co.kr/learn/courses/30/lessons/64065?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 https://yurison.tistory.com/357 [프로그래머스/자바] 튜플 ❌ 실패 코드(런타임 에러) ❌ String을 계속해서 수정하는 코드라 그런지 런타임 에러가 났다. import java.util.Arrays; import java.util.Comparator; class Solution { public int[] solution(String ..
56일차 - 알고리즘(DFS/BFS) https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 깊이 우선 탐색(DFS) - 그래프 완전 탐색 기법 중 하나 - 그래프의 시작 노드에서 출발하여 한 쪽 분기의 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동하여 다시 탐색을 수행하는 알고리즘 - 실제 구현 시 재귀 함수, 스택을 이용한다. 너비 우선 탐색(BFS) - 그래프 완전 탐색 기법 중 하나 - 시작 노드에서 출발해 시작 노드를 기준으로 가까운 노드를 먼저 방문하면서 탐색하는 알고리즘..
55일차 - 알고리즘(이진 탐색) https://school.programmers.co.kr/learn/courses/30/lessons/72412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이진 탐색 - 정렬된 배열에서 원하는 값을 빠르게 찾는 검색 알고리즘 - 배열을 반으로 나누어 가며 원하는 값을 찾기 때문에, 시간복잡도가 O(log n)으로 매우 빠르다. public int binarySearch(int[] arr, int target) { int left = 0; int right = arr.length - 1; while (left
54일차 - stream 정렬 stream을 이용한 정렬 * 기본 정렬(오름차순) List list = List.of(5, 2, 3, 4, 1); list = list.stream().sorted().collect(Collectors.toList()); // 1, 2, 3, 4, 5 * 내림차순 정렬 List list = List.of(5, 2, 3, 4, 1); list = list.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()); // 5, 4, 3, 2, 1 stream을 이용한 객체 정렬 * 기본 정렬(오름차순) List list = List.of( new Person("yuri", 30), // String name, int age new Per..
53일차 - 국제화 국제화(Internationalization) File > Settings > Editor - File Encodings > Project Encoding : UTF-8로 변경 resources > messages.properties(디폴트 파일) 생성 후 내용 입력 hello=Hello There. messages_ko.properties hello=안녕하세요. html 파일에서 아래와 같이 사용 가능 * 요청 헤더 중 Accept-Language 가 en, ko 순일 때(== 크롬 기본 언어가 영어일 때) messages_en.properties가 존재하지 않아서 ko 파일을 읽게 된다. 이 때 messages_en.properties를 생성하고 빈 내용으로 저장해두면 디폴트 파일(messages.p..
52일차 - JPA Repository 메서드 명명 규칙 JPA Repository 상속 public interface MemberRepository extends JpaRepository { } 엔티티는 Member 클래스, Member 엔티티의 id 타입은 Long으로 가정했다. JPA Repository 기본 메서드 findAll() : 테이블의 전체 목록을 조회한다. List 반환 findById(id) : 기본키의 값이 id인 객체를 조회한다. Optional 반환 save(member) : member 객체를 테이블에 저장한다. saveAll(memberList) : memberList의 모든 객체를 테이블에 저장한다. delete(member) : member 데이터를 삭제한다. deleteAll(memberList) : memberList의 모든..