Author

스프링5; 컴포넌트 스캔

Component scan 자동 주입과 함께 사용하는 추가 기능이 component scan이다. 스프링이 직접 클래스를 검색해서 bean으로 등록해주는 기능이다. bean 설정에 등록하지 않아도 원하는 클래스를 bean으로 등록할 수 있어 component scan을 사용하면 bean 설정 코드가 많이 줄어든다. 컴포넌트 스캔의 등록 1) @Component 으로 스캔 대상 지정 서비스 코드에 붙인다 이렇게 되면 bean이름은 “memberDao”로 자동지정된다. 자동 지정 규칙은... » read more

스프링5; 의존 자동 주입 @Autowired

Automatic dependency injection 객체에 붙이는 @Autowired 서비스 코드에서 의존주입 받는 객체에 대해 다음과 같이 선언하면 스프링이 bean객체를 직접 찾아서 할당한다 bean 설정에서 의존 주입부분을 삭제하더라도 직접 넣는다 메소드에 붙이는 @Autowired 메소드에도 역시 붙이는게 가능하다. setter에 붙인다면 좀 더 명확할 것 같다는 생각을 해본다. 마찬가지로 bean 설정에서 의존부분을 지울 수 있다. @Qualifier; 의존 객체의 선택 자동... » read more

스프링5; DI의 실제

의존이란? 서비스 객체가 있을때 비즈니스 로직을 처리하는 경우 저장소의 객체를 직접 들여다 볼 수 있다. 위와 같은 코드가 있을때 서비스 객체를 생성한다면 자연스럽게 저장소 객체도 생성된다. 이 경우를 두고 ‘서비스가 저장소에 의존된다’라고 말한다. 의존경우가 있을 경우엔 어떤 일이 생길까? 위와같이 모든 서비스 코드에서 의존관계가 종속된다면 의존에 관련된 코드를 수정 할 때 마다 서비스코드도 전부 수정해야한다.... » read more

알고리즘; 문자열 해싱 #1

오늘 한 것 알고리즘 교집합 슬라이딩 윈도우 습득한 지식 프로그래머스 Hash; 완주하지 못한 선수 참가자와 완주자의 명단에서 완주하지 못한 참가자를 가져온다. 두 리스트의 교집합을 증명하는 과정에서 완주자와 비교해 참가자를 반환한다 (완주하지 못한 참가자) 소스코드 프로그래머스 Hash; 전화번호 목록 리스트 내 원소에 대해 슬라이딩 윈도우로 비교하고 요구조건에 따라 boolean을 반환한다. 소스코드 프로그래머스 Hash; 위장 첫번째 시도... » read more

단방향 암호화 Hash함수

Hash 함수 해시함수는 메시지 길이가 길던, 짧던 항상 동일한 길이의 메시지를 만들어내는 함수다. 메시지를 일정한 길이의 블록으로 분할 후 해시 함수에 입력한다. 짧고 일정한 길이의 메시지 다이제스트 (160,256,512bit)생성 대표적인 Hash함수 : MD5, SHA-256, SHA-512 1) Hash 함수의 요구사항 어떤 크기의 데이터 블록이든지 적용 가능해야 한다. 일방향성을 만족해야한다 = 메시지 다이제스트로부터 원래의 메시지를 만들어낼 수 없어야... » read more

코딩테스트를 위한 파이썬 정리

알고리즘 스터디를 위해 파이썬에서 코딩테스트를 위해 자주 쓰이는 연산자와 내장함수 관련 내용을 간략하게 정리해봤다. 연산 기존 언어와 파이썬에서 다른 연산자 파이썬에서 나누기는 /와 //가 있다. 전자는 소수점을 표시하고 후자는 정수만을 생성한다. 파이썬의 제곱 연산자는 ** 이다. 그 외 C스타일과 동일. 추가적인 연산관련 내장함수 문자열 혹은 리스팅 + : 문자열의 연결 string[i:j] : 분할 얕은 복사... » read more

Database; 모델링 #2

오늘 한 것 1. 미디어 관련 모델링 #2 (MongoDB) 위와 같이 미디어 타입으로 언급된 것은 다음과 같은 고민이 있기 때문이다. 미디어와 글을 같은 타입으로 볼 것인가 → 전통적인 CMS와 다르게 모든 글을 가지고 올 때 개별 사진을 같이 가지고 왔으면 좋겠다. 즉, 글이 주가되는 CMS가 아니라 사진이 주를 이루는 CMS. 미디어에 캡션을 얼마나 부착할 것인가... » read more

스프링의 IoC/DI, AOP의 개념

본격적으로 스프링에서 사용되는 코드 패턴과 개념에 대해서 파고 들어간다. IoC/DI IoC; Inversion of Control 제어의 역전 객체를 직접 생성하지 않고 외부에서 구현체를 넣어줌으로써 제어권을 거꾸로 가지고 가는 현상 IoC는 즉, 설계의 패턴이다. 실체에 의존할 것인가 추상화에 의존할 것인가 DI; Dependency Injection 의존성 주입 외부에서 의존성을 받는 행동. 즉, 외부에서 new로 생성된 객체를 받는다. DI는 즉,... » read more

SOLID; 객체지향 설계의 5원칙

이 부분은 1회차 지만 신경써서 머릿속에 넣어본다. 실제로 설계하거나 구현 할 때 적절한 모델링(추상화)와 인터페이스의 분리에 신경쓸 필요가 있겠다. 그러나 SRP-ISP와 OCP-DIP 관계의 뉘앙스 차이는 아직 잘 모르겠다. 객체지향 설계의 5원칙 SRP; 단일 책임 원칙 OCP; 개방 폐쇄 원칙 LSP; 리스코프 치환 원칙 ISP; 인터페이스 분리 원칙 DIP; 의존 역전 원칙 아주 간단한 요약 1.... » read more

Database; 모델링, RDB

오늘 한 것 1. 미디어 관련 모델링 (MongoDB) MongoDB에서는 속성의 네이밍을 최대한 줄인다. (성능이슈) 2. 실습용 MongoDB 준비 install MongoDB 기본 db path는 /usr/local/var/mongodb다. 꼭 설치하지 않아도 기본 쿼리 몇가지는 웹에서 날려볼 수 있다. 습득한 지식 1. NoSQL과 RDB의 구조적 차이점 RDBMS MongoDB Database Database Table Collection Tuple / Row Document Column Key / Field... » read more