전체보기(316)
-
MySQL 특정 칼럼에 중복 제거된 값으로 페이징하기
DROP TABLE item; CREATE TABLE item ( id BIGINT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(200), first_seen BIGINT, group_id BIGINT ); INSERT INTO item(name, first_seen, group_id) VALUES("A", 15100, 1); INSERT INTO item(name, first_seen, group_id) VALUES("B", 15654, 2); INSERT INTO item(name, first_seen, group_id) VALUES("C", 46812, 3); INSERT INTO item(name, first_seen, group_id) VALUES("D", 15412..
2019.05.10 -
조인 정리
Scheme CREATE TABLE races ( races_id BIGINT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(200) ); CREATE TABLE friends ( friends_id BIGINT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(200), races_id BIGINT, CONSTRAINT character_races FOREIGN KEY(races_id) REFERENCES races(races_id) ); INSERT INTO races(name) VALUES("동물"); INSERT INTO races(name) VALUES("과일"); INSERT INTO races(name) VALUES("사람"); INSERT ..
2019.05.10 -
자바의 병렬 처리 발전사
구구단 병렬 처리 1. Java 8 이전 : Thread public class Main{ public static void main(String[] args) { for(int i = 2 ; i < 10 ; i++ ){ MyThread test = new MyThread(i); test.start(); } } } @AllArgsConstructor class MyThread extends Thread { private int left = -1; public void run(){ for(int right = 1 ; right < 10 ; right++ ){ System.out.println(Thread.currentThread().getName() + "\t" + left + " * " + right +..
2019.05.03 -
PSA (추상화 계층)
서블릿 어플리케이션을 만들고있음에도 불구하고 스프링을 사용하면서 서블릿을 직접적으로 사용하지 않는다. 서블릿 코드 샘플 public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExcepti..
2019.05.01 -
스프링 부트의 Mock
MOCK 의 사전적 의미 : 모조품 Mocking 과 Spying 테스트할 때 원격 서버의 api 와 통신해봐야 할 수도 있다. 그런데 이렇게 되면 테스트 코드가 원격 서버에 의존적이다. 원격 서버와 통신해야하므로 테스트 코드의 성능도 문제가 된다. 또한 원격 서버가 다운되어 있을 때를 테스트하는 코드가 작성되야 할 수도 있다. 이런 경우 실제로 원격 서버를 다운시킬 수도 없는 노릇이다.이럴 때를 위해서 Spring boot 는 @MockBean과 @SpyBean을 제공한다. + MockRestServiceServer @MockBean @RunWith(SpringRunner.class) @SpringBootTest public class MyTests { @Autowired private MyServic..
2019.04.28 -
스프링 부트 강의 정리 (21~22 : 테스트 자동 설정 Annotations)
spring-boot-test-autoconfigure Configuration 을 슬라이싱해서 원하는 설정파일만 불러와서 테스트를 진행할 수 있도록 도와준다. 대부분의 @~Test 은 excludeAutoConfiguration 을 지원하므로 이를 사용하면 된다. (ex @JsonTest) 슬라이싱에 관심이 없으면 그냥 @SpringBootTest를 쓰면 된다. 말했다시피 @SpringBootTest는 메인 어플리케이션에 등록된 모든 설정파일을 읽어들인다. 그러므로 가능하면 @EnableBatchProcessing 과 같은 특정 목적을 위한 설정은 메인 어플리케이션에 달아두지 말자. 따로 Configuration 클래스를 둬서 관리하는 것이 좋다. 그렇지 않으면 이 설정을 받아들이는 테스트들이 Spri..
2019.04.28