일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring
- 자바
- 데이터베이스
- Java
- 알고리즘
- 스프링
- 코드
- framework
- 코딩테스트
- 개발자
- 애자일기법
- spring boot
- JPA
- 애자일
- 엘라스틱서치
- 그리디알고리즘
- 백준
- 코딩
- ES
- Baekjoon
- Elasticsearch
- 그리디
- cleancode
- 개발
- 클린코드
- 읽기쉬운코드
- 애자일프로그래밍
- API
- database
- 프레임워크
- Today
- Total
목록전체 글 (173)
튼튼발자 개발 성장기🏋️
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bW1Ic9/btqDQ9rJURt/c6v8lHkElKVKVM40kXamI0/img.png)
bean을 설정하는 방법은 여러가지가 있다. 우리는 때때로 개발이 아닌 정보 변경을 필요로 할 때가 있다. 예를 들어서 DB 이전 혹은 서버 이전, 계정 변경 등과 같이 개발 건이 아니지만 개발자가 필요할 때가 있을 수 있다. 이러한 상황에서 굳이 개발 소스를 건드리지 않고서도 변경을 할 수 있다면 굉장히 좋을 것이다. - Environment 객체를 사용하여 설정하는 방법 ApplicationContext에서 Environment를 가지고오는 방법. logger.PREFIX=[PRE] logger.POSTFIX=[POST] public static void main(String[] args) { String config = "classpath:appContext.xml"; ConfigurableAppl..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bwvN2s/btqDRwUcnao/EqMkUxiOad3KXwzE11KxDK/img.png)
생명주기가 그렇다고 한다면 과련 bean의 scope는 어떻게 될까. 개발자가 어떤 공부를 할 때에 scope는 빠짐없이 등장하는 것 같다. scope는 직역하면 "범위"로써 어디까지 영향을 미치는지에 대해 정의를 할 수 있다. public static void main(String[] args) { String config = "classpath:appContext.xml"; GenericXmlApplicationContext appContext = new GenericXmlApplicationContext(config); LoggerUtil logger1 = appContext.getBean("loggerUtil", LoggerUtil.class); logger1.log(); LoggerUtil lo..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ckjY42/btqDRxljELG/2p1X1XxJ9SMmpY0eV7Ukv0/img.png)
스프링 컨테이너의 생명 주기에 대해 알아보자. 이전에 작성했던 코드를 다시 한 번들여다 보자. public static void main(String[] args) { String config = "classpath:appContext.xml"; GenericXmlApplicationContext appContext = new GenericXmlApplicationContext(config);// 컨테이너 생성 LoggerUtil logger = appContext.getBean("loggerUtil", LoggerUtil.class);// 컨테이너 설정 logger.log();// 컨테이너 사용 appContext.close();// 컨테이너 종료 } 컨테이너는 [생성 -> 설정 -> 사용 -> 종료]..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ckTpDp/btqDPYj414h/KAswsS4kAOlSr7MKPiordk/img.png)
DI는 여러가지로 활용할 수 있다. 이전 글에서는 기본적인 DI의 설명이 있었으나 이번에는 여러가지 주입방법을 소개한다. - xml을 이용한 또 다른 주입 방법 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> String config = "classpath:appContext.xml"; GenericXmlApplicationContext appContext = new GenericXmlApplicationContext(config); LoggerUtil logger = appContext.getBean("loggerUtil", ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/KN2cG/btqDOHoVOym/7R3rlHhgCRxn5TAe6iQktk/img.png)
spring은 한국 내에서는 표준 framework가 되었다. 개발 툴 또한 표준화가 되어있는 것 같다. 여기서 framework란 특정 목적에 맞게 만들기 쉽게 갖춰진 틀이라고 보고있다. spring에서 잘 알아야하는 것들 중 가장 기본이 되는 것이 DI(Dependency Injection)이다. DI란 일반 java프로그래밍에서 new 연산자를 사용하여 객체를 만들었다면, 외부에서 주입해주는 방법을 말한다. 여기서 외부는 주로 xml파일을 일컫는다. loggerUtil이라고하는 LoggerUtil bean을 만들어준다. 생성자는 constructor-arg 태그를 사용하여 실행하며 setter는 property 태그를 사용하는 것을 볼 수 있다. 나는 테스트 이다. public class Logge..
달달달 외우는 것을 싫어하고 암기력도 좋지 않아서 이과를 선택했다. 뭘 외우고 있는가? 외울 시간에 이해를 하려고하고 적용을 해보려고 해보자. 이전 글을 참고하자. 꼭. #1 : RESTful API 개발자라면 RESTful에 대해 한 번이라도 들어 보았을 것이라 생각이 든다. 그러나 정작 "RESTful이 뭐야?"라고 물었을 때 진정으로 정답을 말하기 애매한 것 같다. 실제로 사내 프로젝트로 서버 개발을 했을 때 R.. dotori.ga 위 내용에 덧붙여 더 깊게 알아보자. REST의 구성 요소는 다음과 같다. 표현방식 : HTML 등 식별자 : URI 행위 : HTTP REST architecture style Server - Client 자원 제공을 server, 요청을 client가 한다. ser..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/FE4Uf/btqDGgeK0lG/qKFo73DMECKkU3HOqzQBbk/img.png)
문제 기출 : [https://www.acmicpc.net/problem/1758] 풀이 방법 [그리디알고리즘] 접근 당연하게 받은 등수가 높을 수록 강호가 받을 수 있는 팁은 줄어든다. 그렇기 때문에 생각한 팁이 높은 순서대로 앞으로 순서를 정해야한다. 그러므로 sort가 먼저 이루어지고 높은 팁을 생각한 사람 먼저 팁을 계산하여 음수가 나오면 앞으로 계속 음수일 것이므로 break문을 걸어둔다. 여기서 내가 30분동안 고민했던 난관. 왜 answer, 즉 팁의 최대값은 long이어야 하는가? int의 범위는 -2147483648 ~ 2147483647 이다. 문제의 팁의 최대값의 최대값은 계산해보니 705082703로 나온다. 그러므로 int형으로도 충분히 커버 칠 수 있어야하는 걸로 보이는데...왜..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bkoPX5/btqDIopfOEh/K9VonDAXm4It2fqCfFc37k/img.png)
요즘 큰 프로젝트가 한참 개발 중이라서 책 볼 틈이 읎다ㅠㅠ (핑계일 수도 있다..ㅋㅋ) 그래도 시간 짬 내서 보려고 노력중👍 이제 정말 내가 읽기에는 어려운 챕터까지 왔다. 이번 챕터는 5번은 읽은 것 같다..ㅠㅠ 클래스는 사실 미로같은 놈이다. 다 아는 것 같으면서도 무지함을 깨닫고 이쁘게 작성한 듯 하면서도 개떡같이 작성하게 바로 클래스.. 우린 담당 서비스를 개발 할 때도 있지만, 추가개발 할 때도 있다. 추가 개발은 변경이 아닌, 확장이다. 클래스는 확장성을 고려하여 범용적이고 수정하기 간편하게 작성되야한다는 것은 상식. 그러나 응집도와 관련해서 생각을 하지 못했다. 너무 어려운 챕터다.. 두 번 보자. 세 번 보자. 이해 될 때까지 보자...😡