본문 바로가기

전체 글56

RestTemplate Interceptor - 인증 헤더 추가 외부 API를 사용하여 해외 축구 결과를 조회할 수 있는 토이 플젝을 시작했다. 먼저 API 호출을 위해 데이터가 간단한, 선수 데이터를 호출했다. 데이터가 정상적으로 조회되었으나 뭔가 불편한 생각이 든다. 1. 리그, 팀, 경기 등의 데이터를 호출할 때마다 uri, header 코드를 각 서비스마다 작성해줘야한다.2. 간단한 GET 요청에 exchange()를 사용하는 것이 맞는걸까. 물론 exchange()를 통해 요청을 더욱 세밀하게 제어할 수 있다.하지만 간단한 GET 요청이며 코드가 반복되는 상황을 최대한 줄이고 싶다. RestTemplate을 생성할 때 uri와 header 값을 같이 넣어준다면 마지막 코드 한 줄로 정리되지 않을까.  RestTemplate Interceptor인증 헤더 추가.. 2024. 5. 22.
영속성 컨텍스트 먼저 영속성 컨텍스트를 생성하고 관리하려면 엔티티 매니저 팩토리와 엔티티 매니저가 필요하다. Entity Manager Factory (이하 emf)이름 그대로 엔티티 매니저를 만드는 공장인데 생산 비용이 굉장히 크다.JPA를 동작시키기 위한 기반 객체 생성DB 커넥션 풀 생성DB를 하나만 사용하는 애플리케이션은 일반적으로 emf를 하나만 생성한다.여러 스레드가 동시에 접근해도 안전하므로 서로 다른 스레드 간에 공유가 가능하다.Entity Manager (이하 em)emf가 공장이라면 em은 공장을 관리하는 매니저이다.em을 사용하여 엔티티를 DB에 CRUD할 수 있다.em은 내부에 DB 커넥션을 유지하면서 DB와 통신한다.em을 가상의 DB로 생각할 수 있다.DB 커넥션과 밀접한 관계를 가지므로 여러 .. 2024. 5. 18.
[ch.03] JDK 함수형 인터페이스 1. 자바 함수형 인터페이스Function : 인수를 받고 결과를 반환 한다.Consumer : 인수만 받고 결과는 반환 하지 않는다.Supplier : 인수를 받지 않고 결과만 반환 한다.Predicate : 인수를 받아서 표현식에 대해 테스트하고 boolean 값을 결과로 반환 한다.Function하나의 입력과 출력을 가진 전통적인 함수단일 추상 메서드는 apply 로 T 타입의 인수를 받아 R 타입의 결과를 생성한다.@FunctionalInterfacepublic interface Function { R apply(T t);} 문자열을 정수로 변환하거나 객체의 속성을 추출Function strLength = str -> str != null ? str.length() : 0;Integer leng.. 2024. 5. 16.
[ch.02] 함수형 자바 1. 자바 람다 1.1 람다 문법매개변수메서드의 인수와 마찬가지로 쉼포로 구분한다.컴파일러가 매개변수의 타입을 추론할 수 있는 경우 매개변수의 타입을 생략할 수 있다.매개변수가 하나인 경우에는 괄호를 생략할 수 있지만 매개변수가 없거나 둘 이상인 경우 괄호를 사용해야 한다.화살표람다의 매개변수와 람다 바디를 구분하기 위해 사용바디동작을 정의하는 부분중괄호로 둘러싸여 있고, 메서드 본문과 유사하게 작성된다.단일 표현식인 경우 중괄호를 생략할 수 있다.Function sayHello = (String input) -> {return "hello, " + input;};Function sayHello = input -> {return "hello, " + input;};Function sayHello = (S.. 2024. 5. 9.
JWT concept모바일이나 웹의 사용자 인증을 위해 사용하는 암호화된 토큰으로,JWT 정보를 request에 담아 사용자용 정보 열람, 수정 등 개인적인 작업을 수행할 수 있게 한다. Json 형태의 데이터를 네트워크를 통해 서로 다른 장치끼리 안전하게 전송하기 위해 설계 되었다.  JWT 과정세 파트로 나뉘며, 각 파트를 .(점)으로 구분하여 aaaaa.bbbbbb.cccc 의 형식으로 표현된다.JWT는 URL에서 파라미터로 사용할 수 있도록 URL_Safe 한 Base64Url 인코딩을 사용한다. 1. header 토큰의 타입과 해시 암호화 알고리즘으로 구성되어 있다.{"alg" : "HS256","typ" : "JWT"} 2. payload 토큰에 담을 정보여기에 담은 정보의 한 조각을 claim 이라.. 2024. 5. 7.
[ch.01] 함수형 프로그래밍 소개 함수형프로그래밍 언어가 추상 함수를 생성하고 조합함으로써 논리 연산을 표현할 수 있을 때 함수형 언어로 간주람다익명 함수를 지칭하는 용어수학에서 사용하는 함수를 보다 단순하게 표현하는 방법익명 함수공통으로 일급 객체라는 특징을 가지고 있다.일급 객체?다른 객체들에 적용 가능한 연산을 모두 지원하는 개체함수를 값으로 사용할 수도, 인자로 전달 및 변수로 사용하는 등의 연산들 가능하다.람다 대수추상화단일 입력을 받는 익명 함수, 즉 람다응용값에 추상화가 적용되어 결과를 생성개발자의 관점에서는 함수나 메서드 호출을 의미베타 축약추상된 변수를 적요된 인수로 대체수학적 함수 선언식을 의미연산의 놀리를 선언적 문장으로 표현할 수 있어야 하며, 표현식을 사용하여 결과와 프로그램이 작동하는 방식을 설명한다.함수형 프로.. 2024. 5. 2.