[토비의스프링] 1-5 스프링의 IoC
·
Spring Framework/Spring
스프링의 IoC 스프링의 핵심을 담당하는 건, 바로 빈 팩토리 또는 애플리케이션 컨텍스트라고 불리는 것이다. 스프링에서는 빈의 생성과 관계설정 같은 제어를 담당하는 IoC 오브젝트를 빈 팩토리bean factory라고 부른다. 보통 빈 팩토리보다는 이를 좀 더 확장한 애플리케이션 컨텍스트application context를 주로 사용한다. 기존 DaoFactory 코드에는 설정정보, 예를 들어 어떤 클래스의 오브젝트를 생성하고 어디에서 사용하도록 연결해줄 것인가 등에 관한 정보가 평범한 자바 코드로 만들어져 있다. 애플리케이션 컨텍스트는 직접 이런 정보를 담고 있진 않다. 대신 별도로 설정정보를 담고 있는 무엇인가를 가져와 이를 활용하는 범용적인 IoC엔진 같은 것이라고 볼수 있다. 오브젝트 설정 방법 ..
객체지향과 디자인패턴 책거리
·
Essay/Learning Essay
객체지향과 디자인패턴 책을 읽고 발표하는 스터디를 두 달간 진행했고, 저번주 끝이 났다. 1월말부터 3월말까지 2달동안 일주일에 한 번 진행되었고, 객체지향 부분은 일주일에 한 챕터씩 읽고 , 디자인 패턴은 한 주간 4개의 패턴을 훑을 수 있는 진도였다. 책 한권을 다 읽고 나니 너무 뿌듯하다. 그리고 스프링을 공부하기 전에 객체지향에 대해서 먼저 얇은 책을 통해 개념들을 공부할 수 있어서 스프링을 시작하는 것에 흥미를 더해주었다. 스프링 시작 전에 자바를 공부하면서 최범균님의 객체지향과 디자인패턴을 같이 병행해보는 것을 추천한다. 얇은 책으로 개념을 예시코드들과 함께 익힐 수 있어서 이해했고, 다음에 적용해보고 싶다는 성취감을 느끼면서 공부할 수 있는 책이다.
HTTP 개관
·
Computer Science/네트워크
HTTP 개관 웹 브라우저와 웹 서버가 기본적인 트랜잭션(요청 명령과 응답 결과)을 구현하기 위해 어떻게 메세지를 주고 받는지 알아본다. 학습목표 얼마나 많은 클라이언트가 서버와 통신하는지 리소스가 어디서 오는지 웹 트랜잭션이 어떻게 동작하는지 HTTP 통신을 위해 사용하는 메세지의 형식 HTTP 기저의 TCP 네트워크 전송 여러 종류의 HTTP 프로토콜 인터넷 곳곳에 설치된 다양한 HTTP 구성요소 리소스 웹 리소스 : 웹에 콘텐츠를 제공하는 모든 것 정적 파일 동적 파일 : 요청에 따라 콘텐츠를 생산하는 프로그램 통해 생산 미디어 타입(MIME 타입) 웹서버는 모든 HTTP객체 데이터에 MIME 타입을 붙인다. 웹브라우저는 서버에서 객체를 받을 때 다룰 수 있는 객체인지 MIME 타입을 통해 확인 구..
[토비의스프링] 1장 오브젝트와 의존관계 - DAO(1)
·
Spring Framework/Spring
느낀점 스프링은 객체지향이다. 객체지향은 리팩토링을 위한 것 같다. 오늘 읽은 파트는 최범균님의 "객체지향과 디자인패턴" 책의 더 긴 버젼같다. 한 줄 요약 "스프링은 오브젝트를 어떻게 효과적으로 설계하고 구현하고, 사용하고, 이를 개선 해나갈 것인가에 대한 명쾌한 기준을 마련해준다." "리팩토링은 개발자가 직관적으로 수행할 수 있긴 하지만. 본격적으로 적용하려면 학습과 훈련 이 필요하다. 나쁜 냄새에는 어떤 종류가 있다" 내용 요약 DAO클래스의 문제점 DB에서 데이터를 가져오는 DAO클래스를 절차적으로 작성한 후 어떻게 테스트하고 어떻게 재사용할 것인지에 대해 다룬다. main()를 통한 테스트 : 처음에는 해당 DAO 클래스 내에서의 main()메서드에서 테스트하는 방법을 소개한다. 문제점 :mai..
회사선택 기준
·
Essay/Learning Essay
회사 선택 기준 회사선택 기준에 대해 좋은 글을 볼 때마다 추가해보려고 한다. 출처: 뉴스레터 썸원 💭 커리어를 발전시킨다는 것이 가지는 구체적인 의미 사람들은 흔히 커리어를 잘 쌓기 위해, '자기 개발에 노력을 기울이면 된다'고 생각하는 경향이 있습니다. 이를테면, ‘이런이런 스킬셋을 익히면 잘 될 거야’라고 생각하는 것이죠. 하지만 기술 습득은 커리어를 발전시키는 데 있어 극히 일부분에 불과합니다. 사실 커리어를 발전시키는 데 있어서 스킬보다는 ‘어떤 환경 속에 놓여 있느냐’가 훨씬 더 중요합니다. 어떤 환경에 처해 있느냐에 따라, 당신의 잠재력이 증폭될 수도 있고, 제한될 수도 있는 것이죠. 따라서 커리어를 발전시키는 데 있어서, 환경 변수를 완전히 무시하는 것은 그리 적절한 태도가 ..
intellij 테스트 코드 live templates 설정
·
Intellij
테스트 코드 live templates 인텔리제이 live templates 설정은 테스트 코드 작성할 때 아래 처럼 반복되는 주석을 템플릿으로 설정해 자동으로 작성하는 방법이다. //given //when //then설정 방법 Settings/Editor/Live Templates 오른쪽 + 버튼을 눌러 새로운 템플릿을 생성한다. abbreviation은 템플릿에 사용할 축약명이므로 쉬운 이름으로 작성한다. "tdd"는 메서드 선언부까지 나오도록 설정하고, "tdd2"는 주석만 나오도록 설정했다. Template text란에 반복적으로 나올 코드를 적는다. - 메서드 선언부까지 나오는 템플릿 생성 @Test public void $name$ { //given //when //then } - 주석만 나오..
JAVA11 설치하기
·
Java
시스템 환경변수, Path등록 JAVA_HOME등록 Path에 %JAVA_HOME\bin 등록
컨트롤러, form action경로 설정
·
Spring Framework/Spring
디렉토리 구성 및 세팅 src/main/resources └ static └ templates static : 정적 파일을 관리하는 곳으로 css, fonts, images, js 폴더를 생성하고 넣는다. templates : 동적 파일을 관리하는 곳으로 html 파일을 넣는다. application.properties 관련설정 #템플릿 시작 위치 참조 spring.thymeleaf.prefix=classpath:templates/ #템플릿의 확장자 이름 참조 spring.thymeleaf.suffix=.html #해당위치에 파일이 있는지 없는지 체크 spring.thymeleaf.check-template-location=true #캐시를 남기지 않는다. spring.thymeleaf.cache=fal..
git warning: LF will be replaced by CRLF
·
git
git에서 CRLF 개행 문자 차이로 인한 문제 해결 에러 메세지 warning: LF will be replaced by CRLF in The file will have its original line endings in your working directory원인 OS마다 줄바꿈을 인식하는 문자열이 다르기 때문에 형상 관리를 해주는 git이 바라 볼 때 어느 쪽을 선택할지 몰라 경고 메세지 발생. LF (Line-Feed) 현재 위치에서 바로 아래로 이동 CR (Carrage Return) 커서 위치를 맨 앞으로 이동 CRLF (Carrage-Return + Line Feed) 커서를 다음 라인 맨 앞으로 이동 해결방법 윈도우에서는 CRLF 를 사용하므로 저장소에서 가져올 때 LF 를 CRLF 로 변..
자바 2주차 WIL
·
Essay/WIL
일급컬렉션
두 개의 리스트List값 비교 방법
·
Java
List.containsAll() : 2개 리스트의 값이 모두 같은지 아닌지만 확인. Arrays.equals() : 1번과 마찬가지이다. 매개변수는 배열 타입이다. 데이터 순서까지 같아야 true. ArrayList를 Collection으로 변환 후 removeAll() : 값이 같은 데이터를 모두 삭제하고 true/false리턴 contains()와 반복문을 사용 : 같은 데이터가 있는지 확인하고 리턴되는 boolean으로 추후 처리가능. 2. Arrays.equals() : 1번과 마찬가지이다. 매개변수는 배열 타입이다. 데이터 순서까지 같아야 true. 그러므로, Collections.sort()로 정렬한 후에 값을 비교한다. 3. ArrayList를 Collection으로 변환 후 removeA..
개발할 때 하는 딴 생각 개선해보기
·
Essay/Learning Essay
개발할 때 하는 딴 생각 작은 것 하나라도 검색해보면서 해야하는 형편이다. 예를 들면 Map을 쓰려면 key, value가져와서 원하는데로 쓰기 위한 방법을 검색한다. 검색하다보면 딱 마음에 드는 정보를 찾기까지 몇 분 소요되고 모르던 것이 나오면 잠깐 거기에서 멈춰서 보다보면 시간이 간다. 그 사이에 자기 반성 타임이라던지 찾던 지식의 하위 지식을 궁금해하다보면 딴짓하지 않았지만 시간이 흘러간다. ToDo 자주 검색하는 것을 정리해두자 지금 당장하는 커밋단위를 적고 시작하자. 그게 작은 목표고 그것만 하자 짝프로그래밍 오늘 짝 프로그래밍을 했는데, 짝프로그래밍은 개발할 때 하는 딴 생각을 하지 않게 된다. 일단 상대가 있기 때문이고, 기본적인 문법 사용이 익숙한 사람과 하다보면 검색하지 않아도 짝이 척..