목록분류 전체보기 (74)
Dailelog

1. 리플렉션이란?단어 자체는 반사, 반영이라는 의미를 가지고 있습니다. java에서는 아래의 의미를 가지고 있습니다.Runtime 시에 이미 로드된 클래스 내에서 다른 클래스를 동적으로 로드하여 생성자, 필드, 메소드 등 access 할 수 있는 기능입니다.C 같은 compile 언어들은 필드명, 메소드명 등의 정보를 주소값으로 만 알 수 있습니다. 그런데 java는 프로그램을 실행하면서 필드명, 메소드 명 등을 직접 알아 낼 수 있는 기능이 reflection입니다.2. 사전 지식정적 바인딩 vs 동적 바인딩바인딩이란 프로그램에 사용된 구성 요소의 실제 값 또는 프로퍼티를 결정짓는 행위를 의미합니다.정적 바인딩실행 이전에 값이 확정되고 컴파일 타임에 호출될 함수가 결정되는 것으로, 함수는 기본적으로 ..

옵저버란?Observer 의 의미는 감시자, 관찰자라는 뜻의 영어단어이고 한국어로는 참관인 정도로 해석할 수있습니다. 그리고 여담으로 영국의 매주 일요일 발행하는 신문이름이 옵저버라고 합니다. ㅋㅋ 디자인 패턴에서 옵저버 패턴(Observer Pattern) 헤드퍼스트 디자인패턴 책에서 정의는 아래와 같습니다.옵저버 패턴은 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(1:N) 의 의존성을 정의합니다.정의 만으로는 이해가 어려우니 더욱더 자세하게 알아보자옵저버 패턴 이해하기옵저버 패턴에는 주제(subject)객체와 옵저버(observer)객체로 이루어져 있다. 주제객체는 상태변화를 감지하는 객체이다 그리고 중요한 데이터를 관리합니다. 옵저..
이번 주차 미션에 추가된 요구 사항 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..

참고 서적에서 간단한 오리 시뮬레이터 프로그램을 활용하여 strategy패턴에 대해 설명하고 있습니다.코드를 보고 동일하게 설명을 하면 책의 내용을 읽는것과 다름이 없어서 필요한 부분과 나 자신이 이해한 내용을 정리할 생각입니다.정의strategy의 영단어의 의미는 ‘전략’입니다. 이 책에서 strategy 패턴의 정의는 아래와 같습니다.전략 패턴 (Strategy Pattern)은 알고리즘군을 정의하고 캡슐화해 각각의 알고리즘군을 주정해서 쓸 수 있게 해줍니다. 전략 패턴을 사용하면 클라이언트로 부터 알고리즘을 분리해서 독립적을 변경 할 수 있습니다.오리 시뮬레이터 게임 , SimUduck책에서 예제로 오리게임을 제작한다고 예를 들고 있습니다. 다양한 오리들을 보여주는 프로그램에서 다양한 방식의 개발방..

저번 1편에 글에서 이야기 했듯 추가 수정사항과 요구사항을 정리해볼 생각이다. 크게 2가지로 해야하는 것과 하고 싶은 것들로 정리해보았다. 해야하는것Oath - 시큐리티 쪽을 더 공부하고 싶음작성란 컴포넌트 수정 - 에디터 Api들중 한가지골라서 적용할 예정회원가입 - 사용자 정보가 필요한 서비스를 추가하면 반드시 추가 해야할 것 같음카테고리 추가 - 게시글 카테고리와 이후 글관리 목적상 필요 하고 싶은것웹소켓 채팅 - 과거에 만들게 된 Swing 프로젝트에 tcp/ip 채팅을 했을때 웹을 공부하면 하고 싶었음텐서플로워 ai - 마지막 학기 전공수업에서 테서플로워를 이용한 ai 실습이 존재하는데 추가로 공부해서 Dailelog에 추가하고 싶음웹 RTC - 영상미디어관련 웹기술이라서 공부해서 추가할 예..

현재 기능을 크게 로그인,게시글,댓글 3가지가 존재합니다. 1. 로그인 기능 사용자 정보를 이용해 인증된 사용자만 기능을 사용할 수 있도록 하기위한 로그인 기능 , 로그인 완료 시 DB에 JWT를 이용한 세션 정보를 저장하고 확인하는 절차를 수행하도록 개발 했습니다. 현재는 로그인 기능만을 제공하고 있습니다. 추후 회원가입과 아이디,비번 찾기 비밀번호 변경기능을 추가할 예정입니다. 아래에 2가지 기능 말고 추가 기능 개발시 로그인 기능이 필요하다고 생각했습니다.2. 게시글 기능Dailelog 는 블로그 라는 정체성의 기본인 글작성 기능입니다. 제목과 내용을 입력받아 메인화면에 게시글 목록을 페이징하여 보여지 한다. 블로그 게시글은 메인 admin 계정만 가능하게 개발된 상태입니다. CRUD 가 모..

일급 컬렉션이란?일급 컬렉션은 소트윅스 앤솔로지의 객체지향 생활체조 파트의 규칙 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 에 쓰..