일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 이진탐색
- 카카오
- 스프링프로젝트 시작하기
- 그래프
- 이진검색
- 스프링
- bitmasking
- 알고리즘
- 프로그래머스
- 징검다리
- 플로이드워셜
- 자바
- Algorithm
- Java
- sope
- 전화번호 목록
- 스프링이란
- 11723
- 가장먼노드
- 플로이드와샬
- Spring
- Spring이란
- BinarySearch
- @Profile
- 카카오인턴
- 토비의스프링
- 백준
- Singtone
- 구현
- 쇠막대기 문제
- Today
- Total
목록정리 (23)
육감적 코딩
프로퍼티 Environment가 제공하는 두 번째 기능인 프로퍼티에 대해 알아보겠습니다. 이 기능은 애플리케이션에 등록되어있는 여러가지 key-value 쌍으로 제공되는 프로퍼티에 접근 할 수 있는 기능입니다. 기본적으로 계층형으로 접근합니다. 여기서 말하는 계층형이란 우선순위가 존재 한다는 뜻입니다. 프로퍼티는 여러가지 소스가 있는데 여러가지 형태로 제공될 수 있습니다. key-value 쌍으로 OS에있는 환경변수, 자바 애플리케이션을 실행할 때 넘겨주는 전 시간에 해본 -d 옵션으로 넘겨주는 프로퍼티들 등 다양합니다. 그럼, 프로퍼티어떻게 설정하고 어떻게 접근하는가? 1. VM obtions VM options에 -D 옵션으로 넣어줄 수 있습니다. 2. properties 파일 만들기 resource..
3.1 깃 저장소 생성 깃은 작선된 소스 코드 파일의 모든 변경 사항을 관리합니다. 변경 사항은 전용 저장소(repository)에 저장합니다. 3.1.1 폴더와 깃 저장소 깃은 파일의 변경 내역을 어떻게 저장하고 관리할 수 있을까요? 깃 저장소는 외형적으로 폴더와 비슷합니다. 하지만 깃 저장소는 내부적으로 구조가 다릅니다. 깃 저장소에는 별도의 숨겨진 영역(숨겨진 폴더)이 있는데, 여기에 버전 관리 시스템(VCS)에 필요한 파일 변경 이력을 기혹합니다. 3.1.2 초기화 깃에서 초기화란 이미 존재하는 폴더에 초기화 명령어로 VCS 관리를 위한 숨겨진 영역을 생성하는 작업을 의미합니다. 해당 경로로 이동한 뒤, git init 을 하면 초기화가됩니다. (숨겨진 폴더 생성) 3.1.3 숨겨진 폴더 =.gi..
1.1 버전관리 1.1.1 버전이란 사전적의미로 이전의 것과 다른 또는 약간비슷한 것 서브버전은 무엇일까요 ? 보통 버전과 버전 사이에도 코드가 수없이 변화되며 이 중간에도 버전이 있습니다. 이처럼 버전과 버전 사이에 변화된 것을 서브버전이라고 합니다. 이러한 버전의 순자나 기호 역시 일련의 규칙들이 있습니다. 버전을 부여하려면 소스 코드를 구별할 수 있는 의미 있는 변화가 있어야 합니다. 개발 도중 임시로 작업한 것을 버전이라고 말하지는 않습니다. 1.1.2 버전 관리는 왜 필요할까? 개발 도중에는 많은 기능이 추가되고, 수많은 코드가 변경됩니다. 변경되는 동안 코드들은 잠시 불안정한 상태가 되고, 이후 정상적인 테스트와 동작을 확인하고 나면 다시 안정된 상태의 코드가 됩니다. 개발 또는 테스트하는 과..
여태까지 빈과 빈을 등록하는 방법에 대해 알아보았습니다. 다시 애플리케이션 컨텍스트로 돌아가서, 애플리케이션 컨텍스트가 가진 기능들을 구체적으로 알아보겠습니다. Environment 애플리케이션 컨텍스트는 빈팩토리 기능만 하는것은 아닙니다. 여러가지 다른 기능들을 가지고있습니다. ApplicationContext 인터페이스를 살펴보면 많은 인터페이스를 상속하고 있는걸 볼 수 있습니다. 그 중 이번에 알아볼 내용은 EnvironmentCapable 입니다 EnvironmentCapable EnnvironmentCapable은 크게 두 가지 기능으로 나누어 볼 수있습니다. 그 중 하나인 프로파일에 대해 알아보겠습니다. 프로파일 간단히 설명하면 프로파일은 환경입니다. 혹은 빈들의 그룹으로 볼 수 있습니다. 테..
모든 빈들은 스코프가 있습니다. 지금까지 정리한 내용을 살펴면, 여태까지는 모든 빈을 싱글톤 스코프의 빈만을 생성하였습니다. (아무런 설정을 하지않고 빈을 생성하면 기본적으로 싱글톤 스코프의 빈이 생성됩니다) 싱글톤 스코프란? 간단히 설명하면 애플리케이션 전반에 걸쳐서 해당 빈의 인스턴스가 오직 한 개만 존재함을 의미합니다. 그렇다면 프로토타입 스코프는 무엇을 의미할까요? 이것도 간단히 설명하면 빈을 참조할 때 마다 새로운 빈의 인스턴스를 반환하여 사용하게 됩니다. 싱글톤스코프와 프로토타입스코프를 확인 @Component public class AppRunner implements ApplicationRunner { @Autowired ApplicationContext ctx; @Override publ..
9.1 자바 엔터프라이즈 플랫폼과 스프링 애플리케이션 9.1.1 클라이언트와 백엔드 시스템 가장 많이 사용되는 구조는 클라이언트가 웹 브라우저이고 백엔드 시스템이 DB인 구성이다. 간단히 ’DB를 사용하는 웹 애플리케이션’ 이라고 한다. 웹 클라이언트와 DB가 사용되지 않는 시스템은 거의 없으니, 이를 스프링이 사용되는 애플리케이션의 기본구조라고 생각할 수도 있다. 그렇다고 꼭 클라이언트는 웹 브라우저여야 하며 백엔드 시스템은 DB를 이용해야 하는 것만은 아니다. HTML을 사용하는 표준 웹 클라이언트 외에도 Flex나 X 인터넷 제품처럼 독립적으로 강력한 기능을 가진 RIA 클라이언트가 사용되기도한다. 또는 HTTP 프로토콜을 이용해 통신하는 다른 엔터프라이즈 시스템일 때도 있다. 자바 서버가 받아들일..
8장 스프링이란 무엇인가? 스프링은 기본적으로 IoC와 DI를 위한 컨테이너로서 작동하지만 그렇다고 “스프링은 단지 IoC/DI 프레임워크다” 라고는 말할 수 없다. 그렇다면 과연 스프링이란 무엇이고 어떻게 설명할 수 있을까? 8.1 스프링의 정의 스프링에 대해 가장 잘 알려진 정의는 이렇다. 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 이 정의에는 스프링의 중요한 특징이 잘 담겨 있다. 애플리케이션 프레임워크 일반적으로 라이브러리나 프레임워크는 특정 업무 분야나 한 가지 기술에 특화된 목표를 가지고 만들어진다. 하지만 스프링은 이와 다르게 ‘애플리케이션 프레임워크’라는 특징을 가지고있다. 애플리케이션 프레임 워크는 특정 계층이나, 기술, 업무에 국한되지 않고 애플리케이..
@ComponentScan - @Repository - @Service - @Controller - @Configuration @ComponentScan의 핵심설정은 크게 두 가지로 볼 수 있습니다. 스캔범위지정 스캔의 범위내에서 걸러낼 조건 먼저 스캔 범위 지정에 대해 알아보겠습니다. 1. 스캔범위지정. 먼저 basePackage() 입니다. 해당 설정은 문자열을 반환합니다. 하지만 문자열은 타입세이프 하지 않기때문에 타입세이프한 방법으로 설정할 수 있는 basePackageClasses() 라는 속성이 있습니다. 해당 설정에 값을 주면 값에 전달된 클래스 기준으로 컴포넌트 스캔을 시작합니다. 현재 애플리케이션 시작위치 즉 me.jsh.demospringioc.demospringioc.book 패키지부..