본문 바로가기

분류 전체보기

(95)
뉴스피드 프로젝트 2일차 팀원들과의 회의 끝에 필자는 로그인, 로그아웃 기능을 구현하기로 했다. 로그인 기능은 사용자 인증에 사용할 jwt 토큰을 생성해서 반환하는 api이다.String userId = requestDto.getUserId(); String password = requestDto.getPassword(); User user = userRepository.findByUserId(userId).orElseThrow( () -> new IllegalArgumentException("등록된 사용자가 없습니다.") ); if((!passwordEncoder.matches(password, user.getUserPassword()))) { ..
뉴스피드 프로젝트 1일차 지금껏 배운 지식들을 바탕으로 팀을 만들어서 프로젝트를 진행하기로 했다.이번 프로젝트의 주제는 ott 구독 공유 플랫폼이다. 넷플릭스, 디즈니+등등 유명 ott를 사용할 4명을 모아서 쉐어링 할 수 있도록 중개해주는 웹 애플리케이션을 만들 것이다.ER-Diagram, 와이어프레임, API 명세서를 모두 완성했으니 본격적인 개발을 위해 개발 환경을 구축하기로 했다.사용할 기술로는 Java 기반의 Spring Boot 3.3.0을 사용했다. DBMS는 h2 데이터베이스를 사용하기로 했다.h2데이터베이스는 다른 RDBMS처럼 서버 본체에 DBMS를 설치하고 실행하는 과정이 없기 때문에 상대적으로 간편하고 백그라운드에서 db가 별도로 가동시킬 필요가 없기 때문에 서버의 자원을 절약할 수 있다는 장점이 있었다. ..
Spring 숙련주차 Part4 1. 지연 로딩과 즉시 로딩JPA는 연관관계가 설정된 Entity의 정보를 바로 가져올지, 필요할 때 가져올지 가져오는 방법을 정할 수 있다.이런 가져오는 방법을 JPA에서는 Fetch Type이라 부른다.Fetch Type의 종류에는 2가지가 있는데 하나는 LAZY, 다른 하나는 EAGER 이다.LAZY는 지연 로딩으로 필요한 시점에 정보를 가져온다.EAGER는 즉시 로딩으로 이름의 뜻처럼 조회할 때 연관된 모든 Entity의 정보를 즉시 가져온다.@Target({ElementType.METHOD, ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)public @interface OneToMany { Class targetEntity() default..
3진법 뒤집기 import java.util.ArrayList;import java.util.List;class Solution { public int solution(int n) { int answer = 0; List trinary = new ArrayList(); for(int i = n; i > 0; i = i / 3) { trinary.add(i % 3); } for(int j = trinary.size() - 1, k = 0; j >= 0 ; j--, k++) { answer += (trinary.get(j) * quarter(k)); } return answer; } ..
최대공약수와 최소공배수 구하기 class Solution { public int[] solution(int n, int m) { int gcd = gcd(n, m); int lcs = lcs(n, m); int[] answer = {gcd, lcs}; return answer; } public int gcd(int val1, int val2) { int i = val1; while(i > 1) { if(val2 % i == 0 && val1 % i == 0) { break; } i--; } return i; } public ..
MySQL에서의 if문과 case문 mysql에서도 조건문을 지원한다. 특정 컬럼의 값에 따라 다른 출력 결과를 보여줘야 할 상황에 쓰면 유용하다.if문:if(조건문, 참일때 값, 거짓일 때 값(선택))예시: select if(required, 'true', 'false') from table;if문 속에 if문을 중첩시킬 수 있다.예시: select if(required, if(required1, 'true1', false1'), if(required2, 'true2', false2')) from table; case문:case-when문은 여러개의 조건을 한번에 묶어서 표현할 수 있다.when에는 조건을 적고 then에는 조건에 일치하는 결과를 적으면 된다.SELECT CASE WHEN permission_type_id = 1 TH..
행렬 간 덧셈 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { // 두 행렬의 길이는 어차피 동일해야만 하기 때문에 arr1의 길이만큼 answer배열의 길이를 산정했다. int[][] answer = new int[arr1.length][arr1[0].length]; for(int i = 0; i 출처:프로그래머스(https://school.programmers.co.kr/learn/cour..
Java의 정규표현식 정규표현식 혹은 정규식은 특정 문자열의 규칙을 가지는 문자열의 집합을 표현하는 데 사용되는 언어를 의미한다. 정규식 문법 모음기호설명예제.임의의 문자 1개를 의미 ^시작을 의미한다 []괄호 안에 있다면 일치하지 않는 부정의 의미로 쓰인다.^a : a로 시작하는 단어, [^a] : a가 아닌 철자인 문자 1개$$앞의 문자열로 문자가 끝나는지를 의미한다.a$ : a로 끝나는 단어[][] 괄호 안의 문자가 있는지를 확인한다.[ab][cd] : a,b중 한 문자와 c,d중 한 문자 -> ac ad bc bd[^][] 대괄호 안에 ^ 문자가 있으면, 제외를 뜻함, 대괄호 안에 ^ 가 쓰이면 제외의 뜻, 대괄호 밖에 ^ 가 쓰이면 시작점의 뜻[^a-z] : 알파벳 소문자 a부터 z까지를 제외한 모든 문자-사이의 문..