분류 전체보기(6)
-
spring 의존관계 주입 방법 4가지
(1) 생성자 주입 (2) 수정자 주입 (3) 필드 주입 (4) 일반 메소드 주입 (1) 생성자 주입 - 생성자 호출시점에만 의존관계 인스턴스 할당 - immutable, 필수 의존관계에 사용 - 예제 /* kotlin */ // spring bean 한정으로, 생성자 1개면 @Autowired 생략 가능 @Service class MemberService(private val memberRepo: MemberRepo) // 생성자가 2개 이상이면 @Autowired 명시 필요 @Service class OrderService() { private var orderRepo: OrderRepo? = null @Autowired constructor(orderRepo: OrderRepo): this() { ..
2021.05.06 -
기록하기로 했습니다 - 잊지 않으려고 시작한 매일의 습관
북카페 갔다가 베스트셀러 1위에 있던, 이 책을 우연히 발견했었다. 베스트셀러에 꽂혔다기 보단 제목 자체가 마음에 들어서 읽어보았다. (서점에 다 팔려서 결국 온라인 구매를..) 저자/타인의 경험을 진하게 녹여 기록의 소중함을 재차 강조하는 책. 개발 서적 위주로 읽다가 오랜만에 감수성이 풍부한 수필을 읽으니 약간 어색함이 느껴질 정도였다. 하지만 주제별로 기록을 어떻게 남기고 습관화할 수 있는지 부담스럽지 않게 차분히 풀어낸 글이 좋았다. 새로운 습관을 만든다는 것이 쉬운 일은 아니지만 그래도 기록은 좋은 습관이라고 생각하니까 조금이라도 스스로에게 더 동기부여를 하고 싶어서 이 책을 읽었고, 결국 이렇게 오랜만에 책 리뷰 글을 남겨본다. 꼭 글의 형식이 아니더라도 기록은 정말 중요한 것 같다. 단적인 ..
2021.03.28 -
함께 자라기 - 애자일로 가는 길
타당한 근거 없이 이래야한다 저래야한다 하는 책이 아닌, 실제 연구 사례를 바탕으로 흥미로운 결과를 공유하며 함께 성장하는 것이 왜 중요하고 어떤 장점이 있는지 설득하는 책이라고 느꼈다. 현실적이고 직설적인 문장들이 인상 깊기도 했다. 부담없이 읽히는 책이고 여러 번 읽어볼 것 같다. 읽으면서 가장 먼저 나를 돌아보고, 내가 몸 담은 조직의 문화는 건강한지에 대해 생각해 볼 수 있었다. 선물받은 책인데 선물해주신 분께 감사하다는 말을 꼭 전하고 싶다.
2021.03.27 -
[algorithm] bellman-ford
Bellman-Ford Algorithm 번역+공부 (예제 코드는 kotlin) * 문제: 주어진 그래프에서 시작 점(vertex)으로부터 모든 점까지의 최단 거리 찾기 - 그래프는 음수 가중치(negative weight)를 갖는 선(edge)을 가질 수 있다. - 시간 복잡도: O(VE), V=점 갯수, E=선 갯수 - 음수 가중치를 갖는 선이 없다는 가정하에 이 문제를 해결하는 다른 알고리즘으로 Dijkstra가 있지만 별도로 다룬다. * 입력: 그래프(directed graph), 시작점 src * 출력: src로부터 모든 점까지의 최단 거리 - 음수 가중치가 순환되는 경우(negative weight cycle) 최단 거리를 계산할 수 없기 때문에 이에 대한 출력이 있어야 한다. * step b..
2020.08.30 -
[JPA] Transaction
Transaction: 하나의 논리적 기능을 수행하기 위한 최소한의 단위. 트랜잭션은 아래와 같이 ACID를 보장해야 한다. - Atomic : 수행되는 작업들은 일부만 수행되거나 중단되지 않음을 보장해야함. 즉, 모두 수행되거나 모두 실패하거나. (all or nothing = commit or rollback) - Consistency : 트랜잭션 완료 후 데이터는 항상 일관성을 유지해야함. 예를 들면 무결성 제약조건을 항상 만족해야함. - Isolation : 트랜잭션끼리는 서로 간섭할 수 없음. 예를 들면 같은 데이터를 동시에 수정하지 못하도록 함. 동시성 관련 성능 이슈로 인해 Isolation level을 선택할 수 있음. - Durability : 트랜잭션을 성공적으로 완료 후 그 결과가 영..
2020.08.25 -
[design pattern] strategy
Strategy pattern - 알고리즘 군을 정의하고 각각의 구현체를 캡슐화하여 이들을 교환해서 사용할 수 있도록 만든다. - 이를 활용해 알고리즘을 사용하는 Client 와는 독립적으로 알고리즘을 변경할 수 있다. 그림 예제에서 코드로 부가설명을 하자면, class ModelDuck: Duck { public ModelDuck() { flyBehavior = new FlyNoWay(); quackBehavior = new Quack(); } } class Simulator { public static void main(String[] args) { Duck d = new ModelDuck(); d.performFly(); // fly-no-way.fly() d.setFlyBehavior(new Fl..
2020.08.24