분류 전체보기

Junit을 사용할 때 Hamcrest 프레임워크를 사용하면 가독성은 물론이고 코드의 조건을 조금 더 손쉽게 확인할 수 있다. Hamcrest란? Hamcrest는 소프트웨어 테스트를 위한 framework. 기존의 matchers 클래스를 통해 코드의 조건을 확인할 수 있음 Junit에서 Hamcrest matcher를 사용하려면 assertThat 문 뒤에 하나 또는 여러 개의 matchers를 사용한다. ⇒ Hamcrest는 최대한 가독성이 있는 test scripts를 가지는 것을 목표로 하고 있음 boolean a; boolean b; assertThat(a, equalTo(b)); assertThat(a, is(equalTo(b)); assertThat(a, is(b)); // is 메소드는 ..
배너를 만드는법 1. org.springframework.boot.Banner 인터페이스를 구현하여 custom banner 개발 @SpringBootApplication public class SampleApplication { public static void main(String[] args) { SpringApplication springApplication = new SpringApplication(SampleApplication.class); springApplication.setBanner((environment, sourceClass, out)->{ out.println("Spring Boot! Corn!"); }); springApplication.run(args); } } 하지만.. 단..
1. 의존성 추가 org.springframework.boot spring-boot-starter-freemarker 2. freemarker template 작성 /src/main/resource/templates 경로에 hello.ftl 작성 This is freemarker sample. ${message} 3. Controller 작성 @Controller public class FreemarkerController { @GetMapping("/welcome") public String hello(Map model){ model.put("message", "hello freemarker!"); return "hello"; } }4. properties 설정 spring.freemarker.temp..
ServletRegistrationBean, FilterRegistrationBean, ServletListenerRegistrationBean을 이용해서 등록할 수 있다. 1. 필터 생성 및 등록 LogFilter1 public class LogFilter1 extends GenericFilterBean { private static final Logger log = LoggerFactory.getLogger(LogFilter1.class); @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, Servlet..
2019/07/11 - [프로그래밍 노트/SPRING BOOT] - [Spring Boot] 자동 설정 이해하기 @EnableAutoConfiguration 이 전에 자동설정과 관련된 포스팅을 했었는데, 어떻게 동작하는지 더 자세히 코드를 들여다보자. @EnableAutoConfiguration Spring Boot의 자동 구성을 위한 메타 어노테이션 애플리케이션에서 필요한 Bean을 유추해서 구성해 주는 기능을 담당 (@SpringBootApplication에 포함되어 있음) EnableAutoConfiguration 어노테이션을 들어가보면 AutoConfigurationImportSelector를 사용하는 것을 볼 수 있다. => @Import(AutoConfigurationImportSelector..
... ... 디렉토리 제어문의 시작은 로 시작해서 로 끝난다. Options FollowSymLinks : 실볼릭 링크를 허용한다. Includes : SSI를 허용한다. MultiViews : 클라이언트의 요청에 따라 적절하게 페이지를 보여준다. 쉽게 생각하면 HTTP 헤드 정보가 Accept-Language:ko 라면 Korea 언어에 맞게 데이터를 클라이언트에 전송한다. Indexes : 웹 서버의 디렉토리에 접근 했을 때 DirectoryIndex 지시자로 설정한 파일이 없을 경우 디렉토리안의 파일 목록을 보여준다. None : 모든 설정을 부정한다. AllowOverride AllowOverride는 클라이언트의 디렉토리 접근 제어에 관한 설정이다. AllowOverride 는 AccessFi..
Timeout [300 : default] 클라이언트 요청에 의해 서버와 연결이 될 때, 서로간에 아무런 메시지가 발생하지 않을 때 연결을 끊는 시간. (Rest API 경우에는 낮을 수록, 웹서비스에 경우 높을 수록 좋음) KeepAlive [On : default / Off] Apache의 한 프로세스가 사용자의 지속적인 요청작업을 계속 처리할 것인지 대한 여부 KeepAliveTimeout[5 : default] KeepAlive가 On인 경우 유효한 값으로, 설정 시간(초)동안 요청이 없으면 타임아웃 시킨다. (낮을수록 동접자를 늘릴 수 있음) MaxKeepAliveRquests [100 : default] KeepAlive가 On인 경우 유효한 값으로, 하나의 프로세스가 방문자들의 요청을 처리할..
apache 2.2와 비교하여 apache2.4에서 access control 문법이 변경되었다. mode_access_compat.so apache 모듈이 설치되어 있으면, 2.2 문법도 사용할 수 있다. // 2.2 의 문법 SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 Order allow,deny Deny from all Satisfy All // 2.4의 문법 SetHandler server-status Require all denied Require ip 127.0.0.1 Require all denied Satisfy All
일대다 (1:N) 일대다 관계는 엔티티를 하나 이상 참조할 수 있으므로 자바 컬렉션인 Collection, List, Set, Map 중에 하나를 사용해야 한다. 일대다 단방향 하나의 팀은 여러 회원을 참조할 수 있다. 팀 : 회원 = 1 : N 일대단 단방향의 특이한 점은 보통 자신이 매핑할 테이블의 외래키를 관리하는데, 이 매핑은 반대쪽 테이블에 있는 외래 키를 관리한다.(일대다 고나계에서 외래 키는 항상 다쪽 테이블에 존재) public class Member { public Member(String id, String username){ this.id = id; this.username = username; } @Id @Column(name = "MEMBER_ID") private String i..
엔티티의 연관관계를 매핑할 때 고려해야할 점 다중성(@ManyToOne, @OneToMany, @OneToOne ...) 단방향, 양방향 연관관계의 주인 단방향, 양방향 테이블은 외래 키 하나로 조인을 사용해서 양방향으로 쿼리가 가능하므로 사실상 방향이라는 개념이 없다. 객체는 참조용 필드를 가지고 있는 객체만 연관된 객체를 조회할 수 있기 대문에, 한 쪽만 참조하는 것을 단방향, 양쪽 서로 참조하는 것을 양방향 관계라 한다. 연관관계의 주인 데이터베이스는 외래 키 하나로 두 테이블의 연관관계를 맺는다. 따라서 테이블의 연관관계를 관리하는 포인트는 외래키 하나다. 반면에 엔티티를 양방향으로 매핑하면 A→B, B→A 2곳에서 서로를 참조한다. 따라서 객체의 연관관계를 관리하는 포인트는 2곳이다. JPA는 ..
깡냉쓰
'분류 전체보기' 카테고리의 글 목록 (27 Page)