pkh543의 등록된 링크

 pkh543로 등록된 네이버 블로그 포스트 수는 48건입니다.

[프로그래머스][알고리즘][LEVEL2] 올바른 괄호 [내부링크]

문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')&#x27...

[프로그래머스][알고리즘][LEVEL2] 스킬트리 [내부링크]

문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스...

[프로그래머스][알고리즘][LEVEL2] n^2 배열 자르기 [내부링크]

문제 설명 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열...

[SpringBoot] Thymeleaf (타임리프) [내부링크]

백만년만에 포스팅. Restful CRUD 프로젝트를 개시할 예정이었으나 엄두가 안나요 무서워 너무 길어 ...

[프로그래머스][알고리즘][LEVEL2] 땅따먹기 [내부링크]

문제 설명 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모...

[Eclipse] UTF-8 인코딩 [내부링크]

아주 한참전에 이클립스 UTF-8 인코딩 설정을 마쳤다고 생각했는데 그게 아니었다... HTML과 JS에...

[GitHub] 깃허브 크롬으로 Repository 편하게 보기 OctoTree [내부링크]

GitHub를 통해서 소스코드를 볼 때 다른 Class 파일을 보려면 이전으로 돌아가서 봐야하는 불편함이 있...

[프로그래머스][알고리즘][LEVEL2] 2018 KAKAO BLIND RECRUITMENT [3차] N진수 게임 [내부링크]

문제 설명 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥...

[프로그래머스][알고리즘][LEVEL2] 2018 KAKAO BLIND RECRUITMENT [3차] 파일명 정렬 [내부링크]

문제 설명 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에...

[Spring 기초 강좌] 남궁성 스프링의 정석 [내부링크]

저는 자바 공부의 시작을 남궁성님의 자바의 정석을 보고 했는데요 최근에 스프링의 정석 강의를 내셨다는 ...

[프로그래머스][알고리즘][LEVEL2] 행렬의 곱셈 [내부링크]

문제 설명 2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완...

[프로그래머스][알고리즘][LEVEL2] 최댓값 최솟값 [내부링크]

문제 설명 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 ...

[프로그래머스][알고리즘][LEVEL2] 다음 큰 숫자 [내부링크]

문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫...

[프로그래머스][알고리즘][LEVEL2] 숫자의 표현 [내부링크]

문제 설명 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들...

[프로그래머스][알고리즘][LEVEL2] N개의 최소공배수 [내부링크]

문제 설명 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작...

[프로그래머스][알고리즘][LEVEL2] JadenCase 문자열 만들기 [내부링크]

문제 설명 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문...

[프로그래머스][알고리즘][LEVEL2] 최솟값 만들기 [내부링크]

문제 설명 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B...

[프로그래머스][알고리즘][LEVEL2] 피보나치 수 [내부링크]

문제 설명 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(...

[프로그래머스][알고리즘] 없는 숫자 더하기 [내부링크]

문제 설명 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 입출력 예 소스코드 이번주는 너무 ez해서 설명이 따로 없다. 1일 1알고리즘 끝

[프로그래머스][알고리즘] 예산 [내부링크]

문제 설명 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 soluti.......

[프로그래머스][알고리즘][월간 코드 챌린지 시즌 3]나머지가 1이 되는 수 찾기 [내부링크]

문제 설명 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 3 ≤ n ≤ 1,000,000 입출력 예 소스코드 오늘의 알고리즘 해결 이게 왜 월간 코드 챌린지에 올라온지 잘 모르겠다.. 더 좋은 방법이 있나해서 다른 개발자 분들의 코드들도 봤는데 코드는 내가 깔끔하게 썼지만, 효율에서는 다른 분들이 더 좋았다.. 왜냐하면 내 코드는 거꾸로 시작해서 낮은 수 까지 다 탐색을 하는데 다른 분들의 코드는 낮은 수부터 시작해서 break를 걸어 해결하였다. 내가 위처럼 쓴 이유는 코드가 길어져서 인데.......

[Spring Boot] 예정 사항 [내부링크]

CRUD를 하는 간단한 프로젝트를 게시할 예정. front-end에 표현하지 않고 PostMan을 통해서 기능이 제대로 구현하는지 까지 게시할 예정. 1일 Spring 게시글 업로드는 힘들다.. 공부하는 것만으로 벅차다.. 사람들은 어떤 삶을 사는거지

[프로그래머스][알고리즘] 로또 최고 순위와 최저 순위 [내부링크]

문제 설명 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 25라고 가정해보겠습니다. 당첨 번호 6개가 31, 10, 45, 1, 6, 19라면, 당첨 가능한 최고 순위와 최.......

[프로그래머스][알고리즘] 소수 만들기 [내부링크]

문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 제한사항 제한사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 입출력 예 입출력 예 입출력 예 입.......

[프로그래머스][알고리즘] 2018 KAKAO BLIND RECRUITMENT [1차] 다트 게임 [내부링크]

문제 설명 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다. 옵션으로 스타상(*) , 아차상(#)이 존재하며 스타.......

@Required Annotation 필수 프로퍼티 검사 [내부링크]

Annotation 기반 설정 @Required Annotation을 이용한 필수 프로퍼티 검사 @Required 어노테이션은 필수 프로퍼티를 지정할 때 사용한다. 하지만 위처럼 해당 어노테이션을 추가헀다고 필수 프로퍼티로 인식하지 않는다. Spring 설정 파일에 RequiredAnnotationBeanPostProcessor 클래스를 Bean으로 등록해야 한다. RequiredAnnotationBeanPostProcessor 클래스는 @Required가 적용된 프로퍼티의 값이 설정되어 있는지 확인한다. 저렇게 길게 클래스명을 사용하지 않고 <beans> 태그 내부에 <context:annotation-config> 태그를 사용해도 무방하다.

[프로그래머스][알고리즘] 문자열 내 마음대로 정렬하기 [내부링크]

처음에 굉장히 쉽네 하고 스윽 넘겼다. 다른 사람 풀이를 보기 전 까지는,, 아니 어떻게 이 3줄로 끝낼 생각을 했지.. 싶다 분명 2주전에 함수형 인터페이스에 대해서 학습했는데도 저건 좀,, 모르겠다. 코드의 간결함도 그렇지만 성능면에서도 내가 많이 떨어진다. for문을 2번 사용했기 때문인가.. 다른 코드로는 Comparator를 오버라이딩해서 작성한 코드가 있었다. 이것도 좀 대단하다. 코딩의 세계는 험하다 끝

[프로그래머스][알고리즘] 나누어 떨어지는 숫자 [내부링크]

arr 배열에 있는 숫자 중 divisor로 나누어 떨어지는 숫자만을 구하는 알고리즘 뭔가 조금 더 줄일 수 있을 것 같지만 시간이 없어서 넘긴다. 하루 2문제 완료 끝

[SpringBoot] 프로젝트 파일 [내부링크]

오늘은 그동안 궁금했던 프로젝트 파일의 폴더들이 어떤 역할을 하는지에 대해 대충 알게 되었다. 나처럼 Spring을 처음 시작하는 사람이라면 src/main/java와 src/main/resources는 왜 따로 있고 그 밑에 src는 왜 또 있는거지??라는 생각을 했을 거라고 믿는다. 오늘 그에 대한 답을 하려고 한다. 가장 먼저 할 말은 그냥 보기 쉽게 하려고 이렇게 만들어 졌다. 그 중에서 main/java에는 무슨 파일이 들어 가냐면 java 소스코드 파일이 들어간다. 기본적으로 tes라는 프로젝트 파일을 생성했으니 TesApplication.java라는 Main을 가진 자바 클래스 파일이 자동으로 생성된다. main/resources 폴더에는 무엇이 들어가냐면 front-end와 관련된 코.......

[프로그래머스][알고리즘] 최소직사각형 [내부링크]

이번 문제는 조금 많이 돌아서 왔다. 알고리즘 문제를 풀 때는 어떤 단계를 거쳐 나가서 해결할 것인지가 제일 중요한데 그 첫 단추를 잘 못 풀게되면 문제를 해결해 나가면서 예외 상황에 직면하게 된다. 처음 문제를 해결할 때에는 1. maxW와 maxH를 찾는다. 2. 1의 maxW와 maxH중 어느것이 큰지 확인한다. 3. 만약 maxW가 크다면 maxH 명함의 w가 maxH보다 큰지 확인한다. 4. 크지 않다면 maxH 명함의 w와 h의 위치를 바꾸고 w를 maxH로 바꾼다. 이렇게 생각하며 풀었는데 문제는 maxH와 maxW를 구하고 나면 sizes에서의 위치를 찾을 수 없다는 것이었다. 그래서 다시 생각해서 해결한 방법이 `가로와 세로는 그 누구도 정하지 않았다&#x.......

[SpringBoot] Autowired와 @Resource [내부링크]

@Autowired란 스프링에서 인스턴스가 생성된 이후 @Autowired를 설정한 메소드가 자동으로 호출되고, 인스턴스가 주입된다. 즉 설정한 메소드에 스프링이 관리하는 Bean을 자동으로 Mapping 해준다는 개념이다. 변수, Setter 메소드, 일반 메소드, 생성자에 적용이 가능하다. @Autowired는 @Type을 통해 주입한다. @Autowired가 Type을 찾아서 주입하기 때문에 동일한 Bean 객체가 다수 있을 경우 @Qualifier 어노테이션을 함께 사용해야 한다. <context:compenent-scan> 태그 @Autowired로 의존 관계를 주입할 경우, 클래스에 해당 태그를 사용해야 한다. @Autowired와 @Resource 위의 어노테이션은 Bean을 자동으로 주입 해준다는 동일한.......

[프로그래머스][알고리즘]복서정렬하기 [내부링크]

문제 설명 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요. 규칙 1. 전체 승률이 높은 복서의 번호가 앞쪽으로 갑니다. 아직 다른 복서랑 붙어본 적이 없는 복서의 승률은 0%로 취급합니다. 2. 승률이 동일한 복서의 번호들 중에서는 자신보다 몸무게가 무거운 복서를 이긴 횟수가 많은 복서의 번호가 앞쪽으로 갑니다. 3. 자신보다 무거운 복서를 이긴 횟수까지 동일한 복서의 번호들 중에서는 자기 몸무게가 무거운 복서의 번호가 앞쪽으로 갑니다. 4. 자기 몸무게까지 동일한 복서의 번.......

[SpringBoot] REST API [내부링크]

가장 먼저 REST API란 Respresentational State Transfer의 줄임말이다. REST 아키텍처 스타일의 디자인 원칙을 준수하는 API이다. 직역하면 반응 상태 전송인데 살짝 풀어 보자면 사용자가 요청한 작업에 대한 데이터를 전송한다. 정도라고 이해해도 무방하다. REST의 구성요소 1. 자원 (Resource) : HTTP URI를 의미 2. 자원에 대한 행위 (Verb) : HTTP Method (GET, POST, PUT, PATCH, DELETE등이 있다.) 3. 자원에 대한 행위의 내용 : HTTP Message REST의 특징 1. Server-Client 구조 2. Stateless 무상태 3. Cacheable 캐시 처리 가능 4. Layerd System 계층화 5. Uniform Interface 인터페이스 일관성 REST API REST의 원리를 따르는 API를.......

[프로그래머스][알고리즘] 약수의 개수와 덧셈 [내부링크]

약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 입출력 예 소스코드

[프로그래머스][알고리즘] 음양 더하기 [내부링크]

문제 설명 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 제한사항 입출력 예 내 코드 내 코드를 보고 이 정도면 깔끔하지 했는데 다른 사람의 풀이를 보는 순간 아니었다.. 다른 사람의 풀이 signs[] 배열 자체가 true와 false로만 이루어졌기 때문에 삼항 연산자를 이용해서 true는 *1 false는 *(-1)을 하여 바로 answer에 더하면 해결되는 방식이다. 노력하자 파이팅

[Spring Boot] JPA의 영속성, ORM, Entity 클래스 [내부링크]

JPA(Java Persistence API)란? 기존 EJB ORM이던 Entity Bean을 JPA라고 바꾸고 JavaSe, EE를 위한 영속성(persistenece) 관리와 ORM을 위한 표준 기술이다. 쉽게 말하자면 Java 객체와 DB 테이블 간의 매핑을 처리하는 ORM 기술이다. 그럼 여기서 영속성과 ORM에 대해서도 알아 보자. 영속성(Persistence) 영속성이란, 한 객체가 자신을 생성한 작업이 종료되어도 삭제되지 않고 지속적으로 존재하는 상태를 말한다. 기존에는 사용이 끝나면 모두 삭제가 되었다. 마치 컴퓨터가 꺼지면 클립보드에 저장된 데이터가 지워지는 것처럼 하지만 컴퓨터가 꺼지기 전에 HDD에 저장하여 삭제되지 않도록 하는 것과 같은 특성이다. 이런 특징을 사용해.......

Spring 객체 간의 의존 관계 설정 [내부링크]

Container Bean의 생성을 XML 파일을 통해 한 것처럼 의존 관계도 XML 파일을 통해서 명시할 수 있다. 객체 간의 의존 관계는 생성자, 프로퍼티 설정, XML 네임스페이스,룩업 메소드 인젝션, 임의 빈 객체 전달 방식을 포스팅 할 것이다. 이제 각각 알아 가보도록 하자 생성자 방식 의존 관계 설정 생성자 방식에서는 말 그대로 의존하는 객체를 생성자를 통해서 전달받는다. 예를 들어서 WriteArticleServiceImpl이라는 클래스가 존재하고 이 클래스가 ArticleDao라는 인터페이스에게 의존하고 있다고 가정한다면 다음과 같이 생성자를 통해 객체를 전달받을 수 있을 것이다. 이처럼 생성자를 통해서 객체를 전달받는 경우 < constructor-arg.......

Collection Type Property 설정 [내부링크]

의존 관계 설정이 끝난 줄 알았는데 아니었다. 하긴 뭔가 부족했던 것 같았다. 본론으로 들어가서 만약 프로퍼티의 타입이 List 또는 Map과 같은 Collection 타입인 경우에는 각 타입에 알맞은 태그를 사용하여 값을 설정할 수 있도록 하고 있다. Collection 타입을 입력 받기 위한 태그 먼저 알아보도록 하자 프로퍼티 컬렉션 타입은 한 번도 사용해보지 않아서 잘 모르겠지만 다른 컬렉션 타입들은 알 수 있을 것 같다. List 타입과 배열 빠르게 List 타입을 프로퍼티를 가진 클래스를 보자 위 코드에서 ProtocolHandler 클래스는 List 타입의 filters 프로퍼티를 가진다. 이런 경우에 <list> 태그를 사용하여 저장될 객체를 지목할 수 있.......

의존 관계 자동 설정 [내부링크]

스프링은 의존하는 Bean 객체의 타입이나 이름을 사용해서 의존 개게를 자동으로 설정할 수 있는 기능을 제공한다. 이럴거면 처음부터 알려주지 아무튼 자동으로 설정하게 된다면 설정 파일의 크기를 줄일 수 있게된다. 자동 설정에는 4가지 방식이 존재한다. 위의 방식 중 하나를 골라 <bean> 태그의 autowire 속성에 값을 입력 해주면 된다. 뭔가 간단하다. 설정 파일에 포함된 모든 빈 객체에 대해서 특정 방식의 자동 설정을 적용하고 싶다면 <beans> 태그의 default-autowire 속성에 값을 입력해 주면 된다. default-autowire 속성의 기본 값은 자동 설정을 하지 않는다는 것을 의미하는 "no"이며 <bean> 태그.......

캡스톤 디자인 특허출원 [내부링크]

캡스톤 디자인 결과물로 특허 출원을 한다고한다. 근데 우리 교수님 피드백도 거의 없었는데 지분율 20% 가져가는게 맞나 싶다.. 밤은 내가 샜는데 왜 교수님이 나보다 지분율이 높은거지.. 아무튼 잘 마무리 됐으면 좋겠다

Bean 객체 범위 [내부링크]

Bean 객체의 범위를 지정해주는 이유는 스프링은 기본적으로 Container 한 개에 Bean 객체 한 개를 생성한다. 하지만 경우에 따라서 getBean() 메소드를 호출할 때마다 Bean 객체를 매번 생성해야할 때가 있을 것이다. 이를 위해서 스프링은 Bean의 범위를 설정할 수 있는 방법을 제공하고 있다. Scope <bean> 태그의 속성값의 scope가 있는데 이것이 바로 범위를 지정해주는 방법이다. 적용 범위에는 위의 표처럼 5개가 있다. 한 개를 예를 들어 보자면 이렇게 입력해주면 끝이다. 위의 표에 적혀있듯이 prototype은 Bean을 사용할 때마다 객체를 생성하여 주기 때문에 BeanFactory나 ApplicationContext의 getBean() 메소드를 사용하여 B.......

Bean 객체의 Life Cycle [내부링크]

Bean 객체를 생성했으면 초기화 및 소멸도 처리할 수 있어야 한다. 스프링 Container에 저장되는 Bean 객체는 생성, 초기화, 소멸의 사이클을 갖게 된다. 이 외에도 추가적인 단계를 스프링은 제공하고 있다. 이제 알아가보자 Bean 객체의 Life Cycle을 보면서 공부를 하는데 지금은 몰라도 되는 중간에 쓸모 없는 단계가 너무 많은 거같다.. 그래서 조금 건너 뛰고 BeanFactory와 ApplicationContext의 라이프 사이클 제거 단계 처리부터 시작한다. BeanFactory와 ApplicationContext 라이프 사이클 제거 단계 처리 BeanFactory 인터페이스 구현체인 XmlBeanFactory는 Bean 객체를 컨테이너에서 제거할 때 DisposableBean.destroy()와 커스텀 de.......

외부 설정 프로퍼티 [내부링크]

PropertyPlaceholderConfigurer 해당 클래스를 Bean으로 등록하면 외부 프로퍼티 파일에 저장된 정보를 스프링 설정 파일에 사용할 수 있다. 예를 들어 아래와 같은 프로퍼티 파일을 작성해보자 위의 프로퍼티 파일의 정보를 스프링 설정 파일에서 사용하려면 PropertyPlaceholderConfigurer 클래스를 bean으로 등록한 뒤, 프로퍼티 이름을 사용하면 된다. 3번째 줄의 "locations"의 프로퍼티 값에는 프로퍼티파일 목록이 들어가고 프로퍼티 파일에 포함된 프로퍼티의 값은 "${프로퍼티이름}" 형식으로 사용할 수 있다. 위의 ${jdbc.driver}는 com.mysql.jdbc.Driver를 가진다. 두개 이상의 프로퍼티 파일 목록을 가져오려면.......

Spring boot pom.xml 및 MVC Controller 설정 [내부링크]

Spring boot는 spring-boot-starter로 시작하는 라이브러리를 제공한다. starter-praent에 지정된 라이브러리 버전을 따른다. Spring Boot Starter Parent Spring boot에 필요한 dependency를 자동으로 추가하여 준다. spring-boot-starter-parent를 parent태그에 명시하게 되면 의존성이 자동적으로 설정된다. 프로젝트 설정시 다양한 라이브러리를 사용하게 되고, 그러다 보면 버전 충돌문제가 늘 발생하는데 starter-parent는 의존성 조합간의 충돌 문제가 없는 버전정보 조합을 제공해줌으로써 충돌 문제를 해결해준다. spring-boot-starter-web Spring MVC를 사용한 RESTful 서비스를 개발하는데에 사용된다. pom.xml의 <dependencies&gt.......

Spring Framework의미와 Spring의 주요 기능 [내부링크]

Spring Framework란? Enterprise Application에서 필요로 하는 기능을 제공하는 framework이다. JEE( Java Enterprise Edition)을 대체하는 Framework로 자리 잡고 있다. Spring은 JEE가 제공하는 다양한 기능을 제공하는 것 뿐만 아니라, DI(Dependency Injection)와 AOP(Aspect Oriented Programming)의 기능도 지원한다. Spring의 주요 기능 1. 경량 Container이다. Spring은 자바 객체를 담고 있는 Container이다. Spring Container는 자바 객체의 생성, 소멸과 같은 Life Cycle을 관리하며, Spirng Container로 부터 필요한 객체를 가져와 사용할 수 있다. 2. DI를 지원한다. 설정 파일이나 Annotation을 통해서 객체 관의 의존 관계를 설정.......

Spring Container [내부링크]

스프링은 객체를 관리하는 컨테이너를 제공한다. 컨테이너에 객체를 담아두고 필요할 때마다 컨테이너로부터 객체를 가져와 사용할 수 있도록 한다. 컨테이너와 관련된 주요 인터페이스는 다음과 같다. BeanFactory Interface BeanFactory 인터페이스는 Bean 객체를 관리하고 각 Bean 객체 간의 의존 관계를 설정해 주는 기능을 제공하는 가장 단순한 Container이다. 구현 클래스로는 XmlBeanFactory 클래스로 외부 자원으로부터 설정 정보를 읽어와 Bean 객체를 생성한다. Spring은 다양한 종류의 자원을 동일한 방식으로 표현할 수 있도록 되어 있어서 Resource를 이용하여 XmlBeanFactory에 설저 정보를 전달할 수 있다. EX) Resource resourc.......

Bean 객체 설정 및 컨테이너를 통한 Bean 객체 사용 [내부링크]

Spring Container가 관리할 Bean 객체를 생성하기 위해서는 XML 설정 파일에서 <bean> 태그를 사용하면 된다. class 속성은 생성할 Bean 객체의 완전한 클래스 이름을 입력해야 하고 id 속성은 컨테이너에서 생성된 객체를 구분하는데 사용되는 식별 값을 입력해야 한다. 여기서 id 속성 대신 name 속성으로 변경해도 되는데 변경하는 이유는 2가지가 있다. 1. id 속성은 XML의 ID 구성 요소이기 때문에 동일한 id 값을 갖는 <bean> 태그를 설정하면 XML 문서 검증 과정에서 예외가 발생하게 된다. 2. id 속성은 슬래시("/")나 콤마(",") 같은 특수 문자를 포함할 수 없지만 name 속성은 가능하다. 정도가 있다.......