Study with book

    2장. 테스트

    스프링 개발자에게 제공하는 가장 중요한 가치는 객체지향과 테스트이다. 2.1 UserDaoTest 다시 보기 2.1.1 테스트의 유용성 테스트란 내가 예상하고 의도했던 대로 코드가 정확히 동작하는지를 확인해서 만든 코드를 확실할 수 있게 해주는 작업이다. 2.1.2 UserDaoTest의 특징 웹을 통한 DAO 테스트 방법의 문제점 - 테스트하고 싶었던 것은 UserDao였는데, 다른 계층의 코드와 컴포넌트, 심지어 서버의 설정 상태까지 모두 테스트에 영향을 줄 수 있기 때문에 이런 방식으로 테스트하는 것은 번거롭고 오류가 있을 때 빠르고 정확하게 대응하기가 힘들다. 작은 단위의 테스트 테스트하고자 하는 대상이 명확하다면 그 대상에만 집중해서 테스트하는 것이 바람직하다. 이렇게 작은 단위의 코드에 대해 ..

    1장. 오브젝트 의존관계2

    토비 스프링을 공부하면서 실습했던 내용과 모르는 내용만 기록을 위해서 포스팅한다. 1.5 스프링의 IOC 1.5.1 오브젝트 팩토리를 이용한 스프링 IoC 실습 코드 링크: https://github.com/vvshinevv/toby-spring/tree/feature/1.5.1 스프링에서 빈 팩토리라고 말할 때는 빈을 생성하고 관계를 설정하는 IoC의 기본 기능에 초점을 맞춘 것이고, 애플리케이션 컨텍스르라고 말할 때는 애플리케이션 전반에 걸쳐 모든 구성요소의 제어 작업을 담당하는 IoC 엔진이라는 의미가 좀 더 부각된다. 1.5.2 애플리케이션 컨텍스트의 동작 방식 애플리케이션 컨텍스트는 1) DaoFactory 클래스를 설정정보로 등록해두고 @Bean이 붙은 메소드 이름을 가져와 빈 목록을 만들어둔..

    1장. 오브젝트 의존관계1

    토비 스프링을 공부하면서 실습했던 내용과 모르는 내용만 기록을 위해서 포스팅한다. 객체지향 프로그래밍이 제공하는 폭넓은 혜택을 누릴 수 있도록 기본으로 돌아가자는 것이 스프링 핵심 철학이다. 스프링이 가장 관심을 많이 두는 대상은 오브젝트이다. 스프링이 관심을 갖는 대상인 오브젝트의 설계와 구현, 동작원리에 더 집중하길 바란다. 1.1 초난감 DAO 1.1.1 User 실습 코드 링크: https://github.com/vvshinevv/toby-spring/tree/feature/1.1.1 자바빈은 디폴트 생성자와 프로퍼티 관례에 따라서 만들어진 오브젝트를 가리킨다. - 디폴트 생성자: 자바빈은 파라미터가 없는 디폴트 생성자를 갖고 있어야 한다. 툴이나 프레임워크에서 리플렉션을 이용해 오브젝트를 생성하..

    KFirst And Sort

    1. 개요- N사 면접에서 나온 손코딩 문제- 왜 이걸 구현하지 못했니... 난이도 정말 낮은 건데 ㅜㅜㅜㅜ- 정말 정신 탈탈 털리니까 쉬운 것도 생각이 나지 않는구나... 더 열심히 하자!! 2. 문제- 문제는 정말 간단함.- 인자로 받는 K번째 수를 맨 앞으로 보내고 나머지를 오름차 순으로 정렬- void KFirstSort(int arr[], int arrLen, int k) k번째 값을 맨 앞으로 이동시키고 나머지 값들을 정렬한다.- 빅오(n) 정도 시간이 걸리도록 구현해 봄...- 순차적으로 우선순위 큐에 값을 넣고, k값을 만나면 맨 앞으로 이동- 이후, 우선순위 큐에서 값을 빼내면서 정렬시킴 3. 코드

    [백준]팰린드롬 만들기

    백준저지 [팰린드롬 만들기]https://www.acmicpc.net/problem/1254

    다익스트라(Dijkstra) 알고리즘 구현

    1.개요 드디어 다익스트라 알고리즘 구현을 끝냈다. 이 알고리즘을 연구하고 구현하는데 4일 정도가 소요된 것 같다. 다른 사이트들을 참고하면서 나만의 코드 스타일로 만들기 위해서 많은 노력을 했다. 다익스트라 알고리즘은 방향성과 가중치가 있는 그래프에서 최단거리를 구하는 알고리즘이다. 이번 다익스트라는 정점을 단순히 int값이 아닌 string값으로 입력받아 출력해주는 것을 목표로 구현했다. 다익스트라는 우선순위 큐를 이용해서 구현하는 것이 핵심이다. 방문한 정점에 인접한 정점들을 전부 우선순위 큐에 넣고 작은 가중치로 정렬된 우선순위 큐에서 빼내면서 최단거리를 구한다. 물로 그냥 큐를 사용해도 최종적으로는 최단거리로 갱신이되지만 우선순위 큐를 사용하면 이 갱신하는 작업을 없앤다. 다익스트라는 유명한 커..

    크루스칼(Kruscal) 알고리즘 구현

    [KruscalAlgorithm.cpp] 참고자료 http://makefortune2.tistory.com/39

    후기 표기법 계산(stack사용)

    1. 개요 - stack을 이용한 후기 표기법 계산은 쉬움 - 중위 표기법을 후위 표기법으로 바꾸는 코드가 까다롭게 느꼈음 - 풀이 방식 1) 문자열(char[])을 매개변수로 받는 함수 구성 2) double형 타입의 스택 선언(왜 double형이냐? 나누기 연산때문에) 3) 문자열 하나하나 따서 숫자면 스택에 넣고 문자면 스택에서 2개 빼내서 연산 후 다시 스택에 넣기 4) 문자열이 길이만큼 3번 반복 2. 코드 3. 정리 - char 타입의 문자를 isdigit()이란 함수를 통해서 숫자인지 아닌지를 구분할 수 있음 기억해 둘 것!! - 그리고 char타입이 숫자라면 X - '0' 를 통해서 정수형으로 변경할 수 있다는 것도 기억해 둘 것!! 참고자료 윤성우의 열혈 자료구조

    후위표기법 BinaryTree로 나타내기

    [MakeExpTree.h] [MakeExpTree.cpp] [MakeExpTreeMain.cpp] 참고자료 윤성우의 열혈 자료구조

    중위표기법을 후위표기법으로 변경(Stack 사용)

    "중위표기법을 후위표기법으로 변경(Stack 사용)" [InfixToPostfix.cpp] 참고자료 윤성우의 열혈 자료구조