wls에서 gui로 바로열기
2022. 11. 18. 21:02
Error
explorer.exe . 치면 요로코롬~ 그리고 윈도우 루트디렉토리의 위치는 그니까 wsl에서 /home/lg의 위치는 \\wsl$\Ubuntu\home\lg 이다 자 그르면 윈도우로 들어가는 폴더는 어디에 있을까?!?!?! 바로 루트 디렉토리에서 ls 해보면 mnt라는 폴더가 보일 것이다. 요 mnt폴더가 윈도우로 들어가는 폴더이구 mnt에서 ls를 입력하면 c,d 등이 써있는데 요 c가 c드라이브 d드라이브를 뜻한다! /mnt/c/Users/ 요기 위치와 헷갈리지 않게 주의! 요기는 파일 탐색기로 보면 요위치임! 이것때메 한~~~참을 헤맷다(환~장)
[데일리코딩] 피보나치, 메모이제이션
2022. 11. 7. 00:30
Algorithm
피보나치 수열 중 n번째 항의 수를 리턴하는 간단한 문제였다. 입력 : int n 출력 : int타입 💡주의사항 재귀함수로 풀어야 한다 반복문의 사용이 금지된다. 아 별거아니네~ 하고 처음에는 재귀를 사용해서 룰루랄라 풀어서 제출하려고 했다. 근데 자꾸 시간초과가 뜨는 것이다.. 알고보니 재귀를 이용한 문제는 메모리를 상당히 잡아먹는 비효율적인 방법이고 위 방법대로 푼다면 함수들의 총 호출횟수가 대략 2^n 근처라서 n이 25~30 넘어가면 힘들어진다고 한다. 따라서 메모이제이션을 쓰면 효율적인 알고리즘(O(N))으로 연산을 줄일 수 있다! 🔎메모이제이션이란 이미 계산된 값을 배열에 저장하고 필요시마다 값을 불러와 쓴다. 이렇게 하여 불필요하게 중복되는 계산을 줄이는 것이다! public class fi..
[백준 2609] 최대공약수와 최소공배수, 유클리드 호제법
2022. 11. 7. 00:00
Algorithm
문제 입출력 예시 처음 풀이 처음에는 정말 최대공약수와 최소공배수 구하는 공식 그대로 생각해서 구현해서 풀었다. import java.util.Scanner; //최대공약수와 최소공배수 public class Baek_2609 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int num1 = in.nextInt(); int num2 = in.nextInt(); int commonDivisor = 1; //최초 최대공약수 1로 설정 //두 수중 작은 수에서부터 돌면서 공약수를 확인 for (int i = Math.min(num1, num2); i > 1; i--) { /*만약 i가 num1과 num2의 공약수이..
Spring - 엔티티 간의 연간관계 매핑(일대다,다대일,다대다,일대일)
2022. 11. 5. 18:38
Spring
📌단방향 연관관계 한쪽 클래스만 다른 쪽 클래스의 참조 정보를 가지고 있는 관계를 단방향 연관 관계라고 한다. 📌양방향 연관 관계 양쪽 클래스가 서로의 참조 정보를 가지고 있는 관계를 양방향 연관 관계라고 한다. 📌일대다 단방향 연관 관계(일에서 다의 정보를 가지고 있음) 일대다- 일(1)에 해당하는 클래스가 다(N)에 해당하는 객체를 참조할 수 있는 관계 한명의 회원이 여러 건의 주문을 할 수 있으므로 Member와 Order는 일대다 관계이며, Member만 List 객체를 참조할 수 있으므로 단방향 관계이다. 일대다 단방향 매핑은 잘 사용하지 않는다. 위의 일대다 단반향 연관 관계에서 Order 클래스가 ‘테이블 관계에서 외래키에 해당하는 MEMBER 클래스의 참조값’을 가지고 있지 않아 일반적인 ..
Spring - JDBC기반 Domain Entity와 테이블 설계
2022. 11. 2. 11:55
Spring
👀애그리거트 루트(Aggregate Root) 선정 기준 애그리거트 내의 도메인들 중에서 다른 모든 도메인들과 직간접적으로 연관이 되어 있는 도메인 데이터베이스의 테이블 간 관계로 보자면, 애그리거트 루트는 부모 테이블이 되고, 애그리거트 루트가 아닌 다른 도메인들은 자식 테이블 즉, 애그리거트 루트(Aggregate Root)의 기본키 정보를 다른 도메인들이 외래키 형태로 가지고 있다고 볼 수 있다 관계형 데이터베이스에서 A 테이블의 기본키를 B 테이블이 가지고 있다면 A는 부모 테이블이 되고, B는 자식 테이블이 됩니다. B인 자식 테이블이 가지고 있는 A 테이블의 기본키를 외래키라고 함 📋샘플 애플리케이션 도메인 엔티티 및 테이블 설계 도메인에서 애그리거트 루트 찾기 📜애그리거트 간의 관계 회원 정..
Spring - @MapStruct로 MapperImpl생성 시 입력값으로 null이 들어오는 오류
2022. 10. 31. 10:17
Error
@MapStruct를 이용해 자동 mapper구현체 생성을 하여 코드를 작성한 후 postman으로 다음과 같은 값을 입력하려 하였으나 전부 null값이 들어오며 500오류가 발생하였다. 콘솔창에 뜨는 에러메세지는 다음과 같다. NULL not allowed for column 코드를 확인해보았다. 원인은 @MapStruct를 통해 자동 작성된 Mapper의 구현체가 제대로 작성되지 않았기 때문이었다. 원래는 mapper구현체에서 Dto객체가 들어오면 다음과 같이 get,set으로 값을 가져와 변환하고 Entity객체로 리턴해주어야 하나 get과 set메서드가 들어가는 부분이 전부 제대로 만들어지지 않았다. @Component public class CoffeeMapperImpl implements Co..
Spring - 유효성 검증
2022. 10. 30. 14:23
Spring
MemberPostDto 클래스의 각 멤버 변수에 유효성 검증을 위한 애너테이션을 추가한 후 컨트롤러로 전달받는 DTO 매개변수 앞에 @Valid를 붙여줌 @NotBlank 값이 비어있지 않은지를 검증 null 값이나 공백(””), 스페이스(” “) 같은 값들을 모두 허용하지 않는다. 유효성 검증에 실패하면 에러 메시지(400 ‘Bad Request’)가 콘솔에 출력 @Email 유효한 이메일 주소인지를 검증 유효성 검증에 실패하면 내장된 디폴트 에러 메시지(400 ‘Bad Request’)가 콘솔에 출력 @Pattern 정규 표현식(Reqular Expression)에 매치되는 유효한 값인지를 검증 📌쿼리 파라미터(Query Parameter 또는 Query String) 및 @Pathvariable에..
Spring - Mapper 클래스의 구현, MapStruct
2022. 10. 30. 14:19
Spring
매퍼(Mapper)를 이용한 DTO 클래스 ↔ 엔티티(Entity) 클래스 매핑하는 과정을 정리해 보려 한다. 요그림에서 Controller 에서 DTO Entity Class 요 과정을 매퍼라 한다!! 먼저 매퍼클래스를 구현해보자! //MemberController에서 사용하는 DTO 클래스와 Member 간에 서로 타입을 변환해주는 매퍼(Mapper)클래스 import org.springframework.stereotype.Component; @Component // (1)스프링빈 등록을 위해 추가 public class MemberMapper { // (2) MemberPostDto를 Member로 변환 public Member memberPostDtoToMember(MemberPostDto mem..
Spring - 컨트롤러(DI를 통한 서비스 계층 ↔ API 계층 연동과정)
2022. 10. 30. 14:15
Spring
DI를 통한 서비스 계층 ↔ API 계층 연동과정을 정리해보려 한다. 순서 -Entity클래스인 member 클래스 생성 -memberController 코드구현 -MemberService에 @Service 에너테이션 추가 (Spring Bean으로 만들어주기 위해) -위 코드의 문제점 먼저 Entity클래스인 member 클래스를 생성해준다. 도메인 엔티티(Entity) 클래스란 서비스 계층에서 데이터 액세스 계층과 연동하면서 비즈니스 로직을 처리하기 위해 필요한 데이터를 담는 역할을 하는 클래스 DTO와 비슷한 역할을 하지만 DTO는 클라이언트와 API 계층 사이에서 데이터를 담아 전달하고, 도메인 엔티티 클래스는 API계층과 서비스 계층 사이에서 데이터를 전달한다. 📝member 클래스 생성 imp..