분류 전체보기 (81) 썸네일형 리스트형 Validation 사용자로부터 입력받은 값을 검증하기 위해 사용하는 라이브러리 dependency 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' @Size 문자 길이 제한 @NotNull Null을 허용 X @NotEmpty Null 또는 빈 문자열을 허용 X @Past 과거 날짜만 입력 가능 @Future 미래 날짜만 입력 가능 @FutureOrPresent 미래 또는 오늘 날자만 입력 가능 @Max 최댓값 이하의 값만 입력할 수 있도록 제한 @Min 최솟값 이상의 값만 입력할 수 있돌고 제한 @Pattern 입력값을 정규식 패턴으로 검증 https://wikidocs.net/book/7601 람다식 람다식 lambda expression * Java8에 추가된 기능 * 메서드를 간략한 식으로 표현 * 익명 함수라고도 불림 함수형 인터페이스 * 람다식 형태로 익명 클래스가 만들어질 수 있는 인터페이스 * 조건: 추상 메소드가 하나만 있어야함 * 람다식과 1:1 대응이 되어야 하기 때문 * @FunctionalInterface 달아줘야햠 함수형 인터페이스 예시 @FunctionalInterface public interface Toaster{ void toast(); } @FunctionalInterface public interface Param { int func(int i); } 람다식 예시 public class Test { public static void main(String[] args) .. indexOf() 자바의 indexOf()는 특정문자의 위치를 찾아준다 없는 문자면 -1을 반환한다 사용법 String word="자바 indexOf() 자바함수"; System.out.println(word.indexOf("자")); System.out.println(word.indexOf("자",5)); System.out.println(word.indexOf("굥")); System.out.println(word.indexOf(1)); 결과 0 13 -1 -1 Queue 매번 철자가 헷갈리는 Queue .. 개념 먼저 집어 넣은 데이터가 먼저 나오는 선입선출(First In First Out)구조로 저장하는 방식 데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 이용됨 외국에서 사람들이 버스 정류장에 선 줄을 Queue라고 하는데 먼저 선 사람들이 한명씩 버스에 타는 걸 상상하면 스택이랑 헷갈리지 않을 것이다. (스택은 그릇쌓기) Java에서 LinkedList를 이용해 구현 할 수 있다. 큐의 용어 put 큐에 자료를 넣는 것 get 큐에서 자료를 꺼내는 것 front 데이터를 get할 수 있는 위치 rear 데이터를 put할 수 있는 위치 peek front 데이터 반환 poll front 데이터 삭제 및 반환 Overflow 큐가 꽉 차서 자료를 넣을 .. Stack 앞으로의 코딩테스트를 준비하여 유용한 자료구조나 알고리즘을 정리해두기로 했다. 개념 스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조 (Last In First Out)으로 되어있다 Java에서 배열, 리스트, Stack 클래스를 이용하여 사용할 수 있다. 한마디로 그릇이 쌓인 모습을 생각하면 된다 주요 연산 top() 스택의 가장 위(최근에 넣은) 데이터 반환 pop() 스택의 가장 위(최근에 넣은) 데이터 삭제 push() 스택의 가장 윗 데이터로 top의 자리 위에 메모리를 생성 is_emtpy() 스택이 비었다면 True 아니라면 False 리스트로 구현한 스택 class Node{ int data; Node next; public Node(int data) { this.data = d.. DTO(Data Transfer Object) 서비스가 요청을 처리 후 클라이언트에게 반환할 때 Model 자체를 그대로 리턴하는 경우는 드물고 보통 DTO로 변환해 리턴한다. 이유는 다음과 같다 1. 비지니스 로직을 캡슐화 하기 위함 Model은 DB 테이블 구조와 매우 유사하다. 모델이 갖고 있는 필드는 테이블의 스키마와 비슷할 확률이 높다. 외부에서 DB의 스키마를 아는 것을 원치 않을 경우가 대다수이다. 이때 DTO를 사용하면 외부에 서비스 내부의 로직, DB구조 등을 숨길 수 있음 2. 클라이언트가 필요한 정보를 모델이 전부 포함하지 않는 경우가 많다. 만약 서비스 실행 도중 에러가 발생하면 이 메세지를 어디에 포함해야하는가 ,모델은 서비스 로직과는 관련이 없기 때문에 DTO에 에러 메세지를 포함한다. JPA 쿼리 참고 https://docs.spring.io/spring-data/jpa/reference/jpa/query-methods.html Entity에 테이블 맵핑 https://wikidocs.net/161165 2-04 엔티티로 테이블 매핑하기 * `[완성 소스]` : [https://github.com/pahkey/sbb3/tree/v2.04](https://github.com/pahkey/sbb3/tree/v2.04… wikidocs.net h2 연결 이슈로 mysql 사용 @Entity 스프링 부트가 해당 클래스를 엔티티로 인식 @Id - id 속성을 기본키로 지정 @GenerateValue - 데이터를 저장할 때 해당 속성 값이 자동으로 1 씩 증가 Strategy=GenerationType은 해당 속성만 별도로 번호가 차례대로 증가하는 옵션 (생략되면 모든 @GenerateValue이 지정된 모든 속성에 번호를 생성) @Column 열의 세부 설정을 위.. Background와 nohup aws에서 ec2 접속을 종료하면 서버가 같이 종료 되는 경우가 있다! 이는 서버를 background가 아닌 foreground에서 서버를 동작 시켰기 때문이다 이 문제를 해결하기위해 nohup 명령어를 사용해야한다. (spring, java 사용) nohup 사용법 nohup java -jar jar 파일 주소 --spring.profiles.active=profile의 이름 & nohup.out이 생성된 것을 확인할 수 있다 이제 원하는 파일을 background에서 동작하게 됐으니 ec2 접속을 종료해도 서버가 실행된다. 주의점!! 서버를 종료하고 싶을때 그저 nohup.out 파일을 삭제하면 된다고 생각 할 수 있는데 그렇지 않다. 아래의 이미지를 보면 1. rm 명령어를 썼지만 2. ps au.. 터미널로 git push 터미널 창 실행git init - 깃을 시작한다는 뜻git remote add origin 깃허브 repository 주소gitignore 파일 생성git add .git commit -m "메세지 작성"git push( 최초 1회 안에서 git push --set-upstream origin main) 이전 1 2 3 4 5 6 7 8 9 다음