일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Til
- 스터디
- Real MySQL
- java
- hackerrank
- 정보처리기사
- 2020년 제4회 정보처리기사 필기 문제 분석
- 항해99
- LeetCode
- 뇌정리
- git
- sqldeveloper
- algorithms
- 2020년 정보처리기사 4회
- 필기
- 코드숨
- 책리뷰
- Jackson
- 미니프로젝트
- Python
- If
- post
- 성적프로그램
- 2020년 일정
- 주간회고
- 함수형 코딩
- 알고리즘
- jsp
- 회고
- 서평
- Today
- Total
목록전체 글 (174)
조컴퓨터

1) 생성자에 final 키워드 사용(생성자 1개라 @Autowired 생략한 형태) @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } } 2) Lombok 라이브..

불변 - 대부분의 의존관계 주입은 한번 일어나면 애플리케이션 종료시점까지 의존관계를 변경할 일이 없다. 오히려 대부분의 의존관계는 애플리케이션 종료 전까지 변하면 안된다. - 수정자 주입을 사용하면, setXxx 메서드를 public으로 열어두어야 한다. - 누군가 실수로 변경할 수도 있고, 변경하면 안되는 메서드를 열어두는 것은 좋은 설계 방법이 아니다. - 생성자 주입은 객체를 생성할 때 딱 1번만 호출되므로 이후에 호출되는 일이 없다. 따라서 불변하게 설계할 수 있다. 누락 - 프레임워크 없이 순수한 자바 코드를 단위 테스트하는 경우에 생성자 주입을 사용하면 NPE(Null Point Exception)이 발생하는데 주입 데이터를 누락했을 경우 컴파일 오류가 발생한다. final 키워드 사용 - 생..

의존관계 주입은 크게 4가지 방법이 있다. - 생성자 주입 - 수정자 주입(setter 주입) - 필드 주입 - 일반 메서드 주입 생성자 주입 - 말그대로 생성자를 통해서 의존관계를 주입 받는 방법이다. - 생성자 호출 시점에 딱 1번만 호출되는 것이 보장된다. - 불변, 필수 의존관계에 사용 @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, Di..

JUnit Test 를 공부하다가 의문이 들어 찾아 보았다. isSameAs: 같은 객체를 가리키는지를 비교(주소값을 비교하는 메서드) isEqualTo: 객체가 같은 값을 가지고 있는지를 비교(대상의 내용 자체를 비교하는 메서드)

파이썬을 기반으로 한 기본적인 자료구조 및 알고리즘 내용을 완주했다. 자료구조 - 배열(Array), 큐(Queue), 스택(Stack), 링크드 리스트(Linked List), 해쉬 테이블(Hash Table) - 트리(Tree), 이진 탐색 트리(Binary Search Tree), 힙(Heap) 알고리즘 - 정렬 -- 버블 정렬, 선택 정렬, 삽입 정렬, 병합 정렬, 퀵 정렬 - 재귀 호출, 동적 계획법, 분할 정복, 탐욕 알고리즘, 백트래킹 - 탐색 -- 순차 탐색, 이진 탐색 - 그래프 -- 너비 우선 탐색, 깊이 우선 탐색 -- 최단 경로 알고리즘 (다익스트라 알고리즘) -- 최소 신장 트리 알고리즘 --- 크루스칼 알고리즘, 프림 알고리즘 완강을 하면서 여러 위기가 있었다. 이진 탐색 트리,..
자료구조와 함께 배우는 알고리즘 입문 자바편을 구매했다. 해당 책을 12일까지 떼고 올 예정... 4일 저녁부터 보기 시작.

Interger.parseInt(a, 2); ...로 접근했다가 큰 수 때문에 튕겼다. ----------------------- int B = Integer.valueOf(b, 2); int C = A + B; while ( C > 0 ) { ans = ( C % 2) + ans; C /= 2; } ----------------------- class Solution { public String addBinary(String a, String b) { if( a == null || b == null ) { return a == null ? b: a; } int dec = 0; StringBuilder sb = new StringBuilder(); for( int i=a.length()-1, j=b.le..

1) digits[n]*1 + digits[n-1]*10 + digits[n-2]*100 + ... + digits[0]*10^n + 1 class Solution { public int[] plusOne(int[] digits) { int cnt = digits.length; int sum = 1; for( int i=cnt-1; i>=0; i--) { sum += digits[i]*10^{(cnt-1)-i}; } //charAt 으로 한 개씩 잘라서 배열하면 된다~~ } } 2) i) digits[n] = 1, 2, 3, ... , 8 일 때, digits[n] = 2, 3, 4, ... , 9 대입 ii) digits[n] = 9 일 때, digits[n] = 0 대입한 후 digits[n-1] =..