인텔리제이 Java project에 외부 라이브러리(assertJ) 등록하기
·
Intellij
인텔리제이 Java project에 assertJ 등록하기 자바 프로젝트에서 assertJ를 사용하여 테스트를 하고 싶을 때 외부 라이브러리을 추가해주어야 하는데요. 빌드 툴이 포함되어 있지 않은 순수 자바 프로젝트에 외부 라이브러리 등록하는 방법입니다. 인텔리제이 Project Settings 열기 Dependencies 탭에서 + 누르기 2 Library 선택하고 Maven From 선택하기 keyword 검색창에 assertj.core 라고 검색한다. 알맞은 라이브러리를 선택한다.
[Java] of - 정적 팩토리 메서드
·
Java
참고 자료 로또 예제로 설명한 블로그 이펙티브 자바를 요약한 글 백기선님의 정적 팩토리 메서드 영상 시리즈로 되어 있다.
[토비의스프링] 1-7 의존관계 주입 DI
·
Spring Framework/Spring
IoC가 매우 느슨하게정의돼서 폭넓게 사용되는 용어라는 점에서 스프링이 제공하는 IoC 방식을 핵심을 짚어주는 의존관계 주입Dependency Injection이라는, 의도가 명확히 드러나는 이름을 사용하기 시작했다. 먼저 의존관계란 무엇인지 생각해보자. 두 개의 클래스 또는 모듈이 의존관계에 있다고 말할 때는 항상 방향성을 부여해줘야 한다. A -> B (A가 B에 의존하고 있다) UML에서 말하는 의존관계란 이렇게 설계 모델의 관점에서 이야기하는 것이다. 런타임 시에 오브젝트 사이에서 만들어지는 의존관계도 있다. 프로그램이 시작되고 UserDao 오브젝트가 만들어지고 나서 런타임 시에 의존관계를 맺는 대상, 즉 실제 사용대상인 오브젝트를 의존 오브젝트dependent object라고 말한다. 런타임 ..
[토비의스프링] 1-6 싱글톤 레지스트리와 오브젝트 스코프
·
Spring Framework/Spring
싱글톤 레지스트리와 오브젝트 스코프 싱글톤 레지스트리 애플리케이션 컨텍스트는 우리가 만들었던 오브젝트 팩토리와 비슷한 방식으로 동작하는 loC 컨테이너다. 그러면서 동시에 이 애플리케이션 컨텍스트는 싱글톤을 저장하고 관리하는 싱글톤 레지스트리singleton registry이기도 하다. 디자인 패턴에서 나오는 싱글톤 패턴과 비슷한 개념이지만 그 구현 방법은 확연히 다르다. (영한님 강의 ApplicationContext로 테스트 하는 것이 나왔다고 한다.) 스펙에서 강제하진 않지만, 서블릿은 대부분 멀티스레드 환경에서 싱글톤으로 동작한다. 애플리케이션 안에 제한된 수, 대개 한 개의 오브젝트만 만들어서 사용하는 것이 싱글톤 패턴의 원리다. 싱글톤패턴의 한계 private으로 바뀐 생성자는 외부에서 호출할..
[토비의스프링] 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..