본문 바로가기

수업 & 공부

(65)
lambda 람다식 (Lambda) ( java8 에서 지원하기 된 lambda ) //람다식의 구조 {데이터 타입 매개변수, ... } -> { 실행문 , ...} 좌측 매개변수를 사용하여 -> 우측 중괄호 {} 부분을 실행한다 람다식을 사용하는 이유는 불필요한 클래스 정의도 필요없고 메소드도 필요가 없다. 그래서 람다는 익명함수라고도 불린다. @FunctionalInterface 추상 메서드가 오직 하나인 함수형 인터페이스 위 어노테이션은 해당 인터페이스가 함수형 인터페이스 조건에 맞는지 검사 즉 컴파일러에 추상 메서드가 하나만 있는지 확인하게한다 아래는 함수형 인터페이스를 통해 더하기와 제곱을 계산하는 람다식 예제 public class lambdaExam { public static void main(Stri..
Wrapper Class란 Wrapper Class란? 기본 자료형 값을 객체로 다루기 위해 사용하는 클래스 이다. 위 사진과 같이 모든 기본 자료형은 값을 가지는 객체를 생성 할 수 있다. 이렇게 객체를 Wrapping 한다고 해서 Wrapper Class이다. Wrapper Class 사용 이유와 특징 -참조 자료형 Reference Data Type 기본 자료형이 아닌 모든 자료형이 참조 자료형이다. 기본 자료형은 실제 값을 저장하지만 참조 자료형은 인스턴스 주소를 저장한다. java 최상위 클래스인 Object를 상속받는다 ( class, interface, array, enum type ) 1. 기본 자료형을 참조형 자료형 처럼 사용하기 위해 2. 기본 자료형을 감싸 객체형태로 만든다. -> 객체 타입으로 저장하거나 매개..
Java - Collection Collection Framework 자료구조를 기반으로 읽기 추가 삭제 검색 등 효율적으로 객체를 사용하기 위해 작성되어있는 인터페이스와 클래스들 제공 (Map도 Collection으로 분류) Collection 1. List 순서가 있는 저장공간 내용 LinkedList 각 노드가 이전 노드와 다음노드의 상태만 알고있음 (양방향 연결 리스트) 데이터 추가 삭제시 주소값을 변경해주면 되기때문에, 추가 삭제 성능이 좋다 맨 마지막 값이나 처음값 추가 삭제시 O(1) 시간복잡도 (양방향 연결 리스트) 단점 조회 성능이 느리다 ArrayList 데이터에 대한 인덱스를 가짐. 조회 성능이 좋다 O(1) 순서가 있고 중복값 허용 단점 데이터 추가 삭제가 느리다. Stack LIFO(last in first ou..
동적 계획법 알고리즘 (Dynamic Programming) 동적 계획법 동적 : 프로그램이 실행되면서 필요한 메모리를 할당하는 기법을 의미한다. 큰 문제를 작은 문제로 나누어 풀고 결과를 저장하고 재활용하는 알고리즘이다 대표적인 문제로 피보나치의 수 f(n) = f(n-1) + f(n-2) 가 있다. DP의 사용 조건 1. 반복되는 부분문제 (Overlapping Subproblems) 부분문제가 반복되지 않는다 = 재사용이 불가능 하니 DP알고리즘을 사용할수 없다. 피보나치의 수에서는 다음과 같이 반복되는 항이 있어 재활용이 가능하다. 2. 최적부분 구조 (Optimal Substructure) 구하려는 문제(큰 문제) 정답을 작은 문제 최적의 합으로 구할수가 있다. 큰 문제 f(n) 는 작은 문제 f(n-1) + f(n-2) 로 계산이 가능하다. 재귀함수와 ..
시간 복잡도 관련 참고할 글 여러가지 알고리즘 문제를 풀면서 해당 문제를 제한시간 안에 끝낼 수 있을지? 알고 모르고가 굉장히 중요하단걸 체감하고있다. https://coding-factory.tistory.com/608 [Algorithm] 알고리즘 시간복잡도에 대하여 시간복잡도란? 시간 복잡도란 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간을 의미합니다. 같은 결과를 가져오는 프로그래밍 소스도 어떻게 작성하느냐에 따라 걸리는 시간이 달라질 coding-factory.tistory.com https://noahlogs.tistory.com/27 빅오 표기법 (big-O notation) 이란 컴퓨터 과학(Computer Science) 에서 알고리즘은 어떠한 문제를 해결하기 위한 방법이고, 어떠한 문제를 해결 하기 위한 방법..
Spring security 설정으로 인한 401 Unauthorized 에러 Vue파일 빌드 > ../static에 index.html 파일 확인 후 Springboot jar배포를 하고 cmd창으로 jar파일을 실행하고 index.html로 접근하니 401에러가 떴다. 아래 블로그를 참고하여 해결하였다 https://subbak2.com/11 Spring security 설정으로 인한 401 Unauthorized 에러 1. 개발환경 Back-end : Spring-boot Front-end : Vue.js 2. 문제현상 1) Back-end와 Front-end를 따로 서버 구동했을때는 API 통신이 원활하게 진행됨 (Back-end : mvn spring-boot run / 8080 포트 Fron.. subbak2.com
Spring boot Request DTO 에 null값 Spring Request DTO 에 null 값이 들어가는 이유 (Jackson, Lombok) Overview Spring Boot 로 REST API 를 테스트 하다가 이상한 이슈에 직면했습니다. 클라이언트에서 @RequestBody 로 요청을 받기 위한 DTO 클래스를 만들고 값을 입력 받았는데 null 값이 입력되는 겁니다. 처 bcp0109.tistory.com 위 블로그를 참고하여 수정 오타나 동작에 문제가 없는데 Spring boot Request DTO 에 null값이 들어온다면 변수명을 우선적으로 확인해야한다. Object -> Json 으로 변환 하면 Getter의 이름 기준으로 바뀐다 Object 의 필드명을 Getter 로 바꿀 때 일반적으로 맨 앞 글자를 대문자로 바꿔준다 ex)..
(Vue.js환경 만들기 4) proxy 설정 3. Springboot + Vue 개발환경 만들기1 Springboot는 이때까지 작업한 MySpringbootApi 를 사용해볼것 (안되면 새로 만들어야함..) vue cli로 src 디렉토리 아래에 vue.js 프로젝트를 하나 만들어 볼것이다 1. Vue create vue create 기능은 CLI 3.xx.. dwc04112.tistory.com 위 글에서 이어집니다 vue.js dev서버에 proxy 설정을 해서 spring으로 오게 될 요청들을 모두 vue.js dev서버에서 proxing 하여 받고, spring쪽으로 보내주도록 설정을 해볼것이다 클라이언트에서 8081(vue)포트로 요청을 보내면 특정 url을 지정해 놓고, 8081에 해당 url로 온 요청을 다 8080(spring) 으..