전체보기(316)
-
스프링 부트 강의 정리 (19~20 : 테스트, MockBean)
스프링 부트 테스트 spring-boot-starter-test 를 사용하고 이 안에 spring-boot-test, spring-boot-test-autoconfigure 가 있다. JUnit, AssertJ, Harmcrest 라이브러리들을 가져온다. AssertJ : matcher 도 안쓰고 assertThat 만으로 Chaining 해서 테스트 코드 검증할 수 있어서 괜찮은 듯 https://joel-costigliola.github.io/assertj/ AssertJ / Fluent assertions for java AssertJ Fluent assertions for java joel-costigliola.github.io Dependency Injection의 가장 큰 장점은 테스트 코드 ..
2019.04.28 -
스프링 부트 강의 정리 (16~18 : 템플릿 엔진, 에러 핸들링, 데이터 바인딩)
스프링 부트 MVC는 다음과 같은 템플릿 엔진을 기본적으로 지원한다. FreeMarker (업데이트가 느려서 권장 x) Groovy Thymleaf Mustache JSP (사용을 권하지 않음) 위의 템플릿 엔진을 사용할 때 파일을 불러오는 기본 경로는 src/main/resources/templates 이다. Thymeleef 사용 예시 Thymeleef dependency 추가 org.springframework.boot spring-boot-starter-thymeleaf src/main/resources/templates/helloView.html src/main/com/testcompany/testproject/controller/HelloController.java @Controller pub..
2019.04.27 -
JPA 양방향 맵핑, Test 코드 작성시 유의사항
@Entity @Table(name="team") public class Team { @Id @Column(name="team_id") @GeneratedValue(strategy= GenerationType.IDENTITY) private long id; @OneToMany(mappedBy="team") private List members; } @Entity @Table(name="member") public class Member { @Id @Column(name="member_id") @GeneratedValue(strategy= GenerationType.IDENTITY) private long id; private String name; @ManyToOne @JoinColumn(name="te..
2019.04.25 -
Java Optional class
Java 에서 가장 골치덩어리였던게 null point exception. 대부분의 에러는 NullPointException에서 나는 경우가 많다. 그래서 개발자들은 null을 처리해주기 위해서 if (myObject == null) 과같이 조건문을 만들고 분기를 태워줘야 했었다. 이렇게 처리된 코드는 보기도 흉했고 가독성도 떨어졌고, null 처리 로직이 들어가는 것 자체가 코드를 길게 하는 요인이였다. 이러한 문제 때문에 클린 코드에서는 가능하면 메소드가 null 을 리턴하지 말도록 권장했다. 클린 코드는 차라리 null 값보다 Empty 객체를 리턴하라고 말한다. https://kok202.tistory.com/25?category=785883 [2019.02.09] 클린코드 (오류, 경계) 오류 ..
2019.04.25 -
JPA - Mapped By 의 필요성, '관계의 주인' 의미
Owner of relation != Owing side Owner of relation 이라는 표현은 어디에서 나온 것인가? 관계를 표현하는데 있어서 가장 중요한 것은 foreign key 가 바라보는 대상이 누구인지이다. 즉 foreign key 는 관계를 나타내는데 굉장히 중요한 단서이다. 그래서 'Foreign key' = '관계의 핵심' = '관계의 주인' 이라고 한다. Team ~ Member 사이의 일대다 관계가 있다고 생각해보자. @Entity @Table(name="team") public class Team { @Id @Column(name="team_id") private long id; @OneToMany(mappedBy="team") private List members; } @E..
2019.04.25 -
스프링 부트 강의 정리 (15 : WebJar)
WebJar : 프론트엔드 라이브러리를 jar 형태로 패키징해놓은 형태. JQuery 같은 것을 메이븐을 통해서 다운 받을 수 있다. 메이븐으로 설치한 JQuery를 프론트엔드에서 라이브러리를 사용할 수 있다. 추가한 라이브러리는 webjars/ 이하 경로를 통해서 가져올수있다. org.webjars jquery 3.4.0 HTML JQuery 선언 스프링 부트에서 캐시에 자유롭게 변경된 내용을 계속 반영해주는 방법 방법 1. 버전 agnostirng URL : org.webjars webjars-locator-core 방법 2. 캐시 버스팅 : 캐시될 파일 이름의 뒤에다 해쉬코드값을 붙여서 캐시에 독립적으로 동작하도록 한다. # Cache busting properties spring.resources..
2019.04.24