목록JAVA (13)
Dailelog

1. 리플렉션이란?단어 자체는 반사, 반영이라는 의미를 가지고 있습니다. java에서는 아래의 의미를 가지고 있습니다.Runtime 시에 이미 로드된 클래스 내에서 다른 클래스를 동적으로 로드하여 생성자, 필드, 메소드 등 access 할 수 있는 기능입니다.C 같은 compile 언어들은 필드명, 메소드명 등의 정보를 주소값으로 만 알 수 있습니다. 그런데 java는 프로그램을 실행하면서 필드명, 메소드 명 등을 직접 알아 낼 수 있는 기능이 reflection입니다.2. 사전 지식정적 바인딩 vs 동적 바인딩바인딩이란 프로그램에 사용된 구성 요소의 실제 값 또는 프로퍼티를 결정짓는 행위를 의미합니다.정적 바인딩실행 이전에 값이 확정되고 컴파일 타임에 호출될 함수가 결정되는 것으로, 함수는 기본적으로 ..
이번 주차 미션에 추가된 요구 사항 Java Enum을 적용한다. 여기서 Enum 타입을 저는 잘 사용하지 않았습니다. 기존에 상수를 사용할 때 자체 클래스를 구현하는 경우 또는 인터페이스 상수를 활용하곤 했습니다. 알고있던 내용 말고 새롭게 알게된 내용 위주로 다시한번 새롭게 공부해서 정리 했습니다.Enum기본적인 열거 타입 선언public enum Week { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}기존에 내가 공부했던 Enum 타입은 ‘열거 상수’ 의 형태로 그저 상수로 사용해왔습니다. Week today = Week.MONDAY;public enum Rank { FIRST(6,fal..

일급 컬렉션이란?일급 컬렉션은 소트윅스 앤솔로지의 객체지향 생활체조 파트의 규칙 8에서 언급이 되었다고 합니다.규칙 8: 일급 콜렉션 사용이 규칙의 적용은 간단하다.콜렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 한다.각 콜렉션은 그 자체로 포장돼 있으므로 이제 콜렉션과 관련된 동작은 근거지가 마련된셈이다.필터가 이 새 클래스의 일부가 됨을 알 수 있다.필터는 또한 스스로 함수 객체가 될 수 있다.또한 새 클래스는 두 그룹을 같이 묶는다든가 그룹의 각 원소에 규칙을 적용하는 등의 동작을 처리할 수 있다.이는 인스턴스 변수에 대한 규칙의 확실한 확장이지만 그 자체를 위해서도 중요하다.콜렉션은 실로 매우 유용한 원시 타입이다.많은 동작이 있지만 후임 프로그래머나 유지보수 담당자에 의미적 의도나 단초..

서론 💡 Controller에서 인가처리하는 부분을 공부하면서 @Secured(),@PreAuthorize, @PostAuthorize 3개의 어노테이션을 이용해서 인가처리를 해주면 되다는 것을 알고 이번에 @PreAuthorize에 대해서 집중해서 이야기 해볼 생각이다.@PreAuthorize @PreAuthorize("hasRole('ROLE_ADMIN')&&hasPermission(#postId,'POST','DELETE')") @DeleteMapping("/posts/{postId}") public void delete(@PathVariable(name = "postId") Long postId) { PostResponse response = postService.ge..
해시란?해시(hash)란 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑(mapping)한 값이다.SHA?SHA (Secure Hash Algorithm, 안전한 해시 알고리즘) 함수들은 암호학적 해시 함수들의 모음입니다. 이는 미국 국가안보국(NSA)이 1993년에 처음으로 설계했으며 미국 국가 표준으로 지정되었습니다.SHA 함수군에 속하는 최초의 함수는 공식적으로 SHA라고 불리지만, 나중에 설계된 함수들과 구별하기 위하여 SHA-0이라고도 불립니다. 2년 후(1995) SHA-0를 변형한, 개정된 알고리즘인 SHA-1이 발표되었으며, 그 후에 4종류의 변형, SHA-224, SHA-256, SHA-384, SHA-512가 더 발표되었습니다. 이들을 통칭해서 SHA-2라고 하기도 합니다. 후에 나..
인증 관련 공부를 하던중 JWT 공부의 필요성을 느끼고 찾아보았다. JWS 란?더보기JOSE (JSON Object Signining and Encryption) 의 아래에 있는 스펙 중 하나로 OAuth 의 근간이 된 기술이라고 한다.아래는 JOSE 에 속한 기술들. 이 외에도 좀 더 있다고 합니다. JWT (JSON Web Token) : JWS or JWEJWS (JSON Web Signature) : 서버에서 인증을 증거로 인증 정보를 서버의 private key 로 서명한 것을 Token 화 한것.JWE (JSON Web Encryption) : 서버와 클라이언트 간 암호화된 데이터를 Token 화 한것.JWK (JSON Web Key) : JWE 에서 payload encryption 에 쓰..

나는 Spring 에서 설정파일 형식을 YAML의 확장자인 .yml을 사용한다.YAML이란 💡 YAML은 사람이 읽을 수 있는 데이터 직렬화 언어로서, 구성 파일 작성에 자주 사용됩니다. YAML을 yet another markup language로 생각하는 사람도 있고, YAML ain’t markup language(재귀 약어)로 생각하는 사람도 있습니다. 후자는 YAML이 문서가 아닌 데이터용임을 강조하는 말입니다.우리는 Spring, DB등 다양한 설정 정보를 application.yml 파일에서 관리한다. 설정을 직접 구성하고 사용할 수 있도록 커스텀이 가능하다. 어떤 식으로 사용할 수 있는 알아보자.기본 - 간단한 커스텀 설정을 만들어 보자daile: hello: "world"daile라는..

후배가 나에게 자바를 어디까지 공부해야하는지를 나에게 물어보게 되었고 그것을 설명하던 중 나도 정확하게 용어와 내용이 잘 정리되지 않아 과거 정리해준 김태균 교수님 전공수업 내용과 구선생님(구글) 찾아 이 글로 정리하게 되었다. 먼저 내용은 아래와 같다표준 에디션의 자바 플랫폼 (Java SE)엔터프라이즈 에디션의 자바 플랫폼 (Java EE)Java MEJava SE(Standard Edition)가장 기본적인 자바 플랫폼을 의미한다. 흔히 자바 언어라고하는 대부분의 패키지가 포함된 에디션이라고 생각하도 좋다Java SE의 API는 자바 프로그래밍 언어의 핵심기능들을 제공기본적인 문법기초적인 class네트워킹보안데이터베이스 처리그래픽 사용자 인터페이스 개발XML파싱가상머신, 개발도구, 배포기술, 부가 ..

이야기의 시작은 동아리실에서 함께하는 동기가 나에게 정보처리기사 필기 기출 문제를 보여주게 되면서 시작되었다. 문제는 23년도 3회차 20번 문제인데 내가 가지고 있는 시나공 기출문제집과는 다른 코드의 문제였다. 그 코드는 다음과 같다. //자바로 작성된 아래 코드의 실행 결과를 쓰시오. class Parent { int x = 100; Parent() { this(500); } Parent(int x) { this.x = x; } int getX() { return x; } } class Child extends Parent { int x = 4000; Child() { this(5000); } Child(int x) { this.x = x; } } public class Main { public st..

김영한님의 실전! 스프링 부트와 JPA 활용 2 - API 개발과 성능 최적화 편을 공부하는 과정중 나의 생각을 정리하는 목적을 가지고 있다. xToOne(ManyToOne,OneToOne)관계에서 성능 최적화 @GetMapping("/api/v1/members") public List membersV1(){ return memberService.findMembers(); } 위 코드에 경우 엔티티가 직접 노출되게 된다. 하지만 협업에서는 엔티티를 직접 노출하면 안되다. 그리고 array를 넘겨주기 때문 확장성이 떨어진다. 별도의 DTO나 Request,Response객체를 만들어 엔티티를 숨기고 내가 원한 스펙 엔티티의 정보를 담아 보낼 수 있게 만들어 주어야 한다. ..