본문 바로가기

전체 글

(143)
[Spring]Lambda 표현식 1. Lambda 표현식 파라미터와 몸체로 구분 파라미터와 몸체 사이에 '->' 구분을 추가 함수몸체가 단일 실행문이면 괄호{} 생략 가능 함수몸체가 return문으로만 구성되어 있는 경우 괄호{} 생략가능 (파라미터) -> {몸체} 1-1. 익명함수를 람다식으로 변경하기 기존방법↓ new Thread(new Runnable(){ @Override public void run(){ System.out.println("Thread"); } }).start(); 람다식↓ new Thread(() -> { System.out.println("Thread"); }).start(); 람다 함수를 매개변수로 넘기기 위해서는 메소드의 매개변수가 @FunctionalInterface로 선언된 인터페이스여야 가능 @Fu..
[Spring] JWT 1. JWT(Json Web Token) 세션의 문제점 여러대의 서버를 사용하게 될 경우 문제가 발생 → 세션 저장소는 로드 밸런싱을 했을 때 공유되지 않아, 인가 절차를 거칠 때, 다른 서버로 접근하게 되면 인가 불가능 → DB를 사용해 해결이 가능하지만, 접근하는 것 자체에서 네트워크와 하드 디스크 IO비용이 발생하는 문제점이 생김 JWT - JWT는 유저를 인증하고 식별하기 위한 토큰기반 인증 → 토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함 → JWT를 사용한다면 RESTful과 같은 무상태인 환겨에서 사용자 데이터를 주고 받을 수 있게 됨 → 클라이언트에 저장하고 요청시 HTTP헤더에 토큰을 첨부하는것만으로도 단순하게 데이터를 요청하고 응답을 받아 올 수 있음 JWT와 세..
[error-SpringBoot]Invalid mapping pattern detected 원인 SpringBootfmf 2.6 이상 버전으로 업그레이드 되었을 떄 요청 경로를 ControllerHandler에 매칭시키기 위한 것이 작동 됨 → spring.mvc.pathmatch.marching-strategy 기본 값이 ant_path_matcher에서 path_pattern_parser로 변경 해결방법 application.properties 파일에 입력 spring.mvc.pathmatch.matching-strategy=ant_path_matcher
[error-SpringBoot]Web server failed to start. Port 8080 was already in use. 프로젝트 도중 8080포트를 잘 사용하다가 이러한 오류가 생겼다. 원인 서버를 구동하는데 필요한 포트가 이미 사용중이기 때문이거나 서버가 정상적으로 종료되지 않아서 나올 수 있다 해결 Window) 특정 포트를 사용하는 네트워크 통계정보 출력 → netstat -ano | findstr [포트번호] 위 명령어를 통해 출력된 목록의 process_id를 입력해 강제 종료 → taskkill /F /pid [process_id]
[CS 지식 - Spring] 디자인 패턴 1. 디자인 패턴 소프트웨어 디자인 패턴 → 디자인패턴은 소프트웨어 설계에서 일반적으로 발생하는 문제/ 난관을 해결하기 위한 일반적인 반복 가능한 솔루션 디자인 패턴의 장점 1. 개발자 간의 원활한 의사소통 2. 소프트웨어 구조 파악 용이 3. 재사용을 통한 개발 시간 단축 4. 설계 변경 요청에 대한 유연한 대처 5. 불필요한 리소스 낭비 방지 디자인 패턴의 단점 1. 객체 지향 설계 / 구현 위주로 사용 2. 초기 투자 비용 부담 2. GoF의 디자인 패턴 종류 2-1. 생성패턴 객체 생성에 관련된 디자인 패턴 → 특정 상황에서 객체를 생성하는 데 있어서 보다 나은 유연성 제공 생성패턴에 해당하는 기법은 추상 팩토리 패턴, 빌더 패턴, 메서드 패턴, 프로토타입 패턴, 싱글톤 패턴 2-2. 구조패턴 클..
[CS지식 - 알고리즘] 탐욕 알고리즘 1. 탐욕 알고리즘(Greedy Algorithm) 선택의 순간마다 당장 눈 앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법 탐욕 알고리즘은 최적해를 구하는데 사용되는 근사적인 방법 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달 ▶그 순간에서 가장 좋은 것을 고르는 행위가 그 문제의 모든 경우의 수에서 발생하는 최적의 해라는 것을 담보하지 않음 ▶ 탐욕 알고리즘을 적용 할 수 있는 문제들은 지역적으로 최적이면서 전역적으로 최적인 문제이다 1-1. 탐욕 알고리즘 문제를 해결하는 방법 선택 절차 : 현재 상태에서의 최적의 해답을 선택 적절성 검사 : 선택된 해가 문제의 조건을 만족하는지 검사 해답 검사 : 원..
[cs지식 - Spring] cron 개념 cron 개념 주기적 실행 명령어 특정한 시간 또는 특정 시기마다 자동으로 수행하게 하는 명령어 1. crontab -e * * * * * → 분(0~59) 시간(0~23) 일(1-31) 월(1-12) 요일(0-7) 1 * * * * → 1분마다 실행 * 3 * * * → 새벽3시마다 실행 * 3,4 * * * → 새벽3시, 새벽4시마다 실행 * 3-6 * * * → 새벽3~6시사이 마다 실행 2. 스크립트로 cron등록하기 vi myScript.sh로 생성하기 cron으로 스프링 서버 재시작하기 1. 서버 끄는 스크립트 작성하기 2. 서버 재시작하는 스크립트 작성 3. spring-restart와 spring-stop을 cron에 등록하는 것을 스크립트로 작성
[cs지식 - Spring] aws 배포하기 1. github 다운 받기 git clone [git주소] 2. gradlew 실행 권한 주기 gradlew로 프로젝트를 jar파일로 변경하기하기 위해 권한 주기 3. jar로 실행하기 위해 자바 설치(JDK, JRE) 4. gradlew로 프로젝트를 jar파일로 변경하기 5. 실행 확인 http://3.37.122.88:8080/aws/v1?number=1로 연결했을 때 → info 로그 값 출력 http://3.37.122.88:8080/aws/v1?number=-1로 연결했을 때 → error 로그 값 출력 http://3.37.122.88:8080/aws/v1?number=0로 연결했을 때 → warn 로그 값 출력 → 출력이 잘 되는 것이 확인 됨 하지만 mobaXterm을 끄면 5-1. no..