전체 글
-
Spring Boot TestSpring 2021. 2. 9. 16:20
스프링부트 테스트 에 대하여 알아보자 참고블로그 brunch.co.kr/@springboot/207 참고 이전포스팅 hodolee246.tistory.com/60 Spring Boot Test Dependency spring-boot-test : 핵심 기능 포함 spring-boot-test-autoconfigure : 테스트를 위한 AutoConfiguration 제공 Spring Test, Spring Boot Test : 스프링 부트를 위한 유틸 및 통합 테스트 지원 AssertJ : 유창한 Assertion library Hamcrest : libarary에 잘 어울리는 오브젝트(constraints or predicates) Mockito : 자바 mocking framework JSONasse..
-
AWS 관련Dev 2021. 2. 9. 15:57
AWS RDS MariaDB 올리기 참고 블로그 leveloper.tistory.com/18 velog.io/@swchoi0329/AWS-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95 EC2 인스턴스 생성 인스턴스 시작 우분투 우발적인 종료로부터 보호 활성화 ssh를 위한 22번 포트 -> 모든 개발자 접근 -> 해당 사용하는 모뎀 tomcat을 위한 8080 포트 마지막 검토 주로 아이디 / 패스워드 or 키 페어로 접근 허용 키 페어 시 발급 해주어야함 -> 페어 키 보관 인스턴스 종료 -> 전체 삭제랑 동일 보통 종료는 중지를 의미 접근 시 -> 퍼블릭 ipv4 재부팅 시 재발급 ..
-
토비의 스프링[4] 예외처리Spring 2021. 1. 27. 06:05
서론 UserDao를 JdbcTemplate로 변경하면서 SQLException이 사라진 이유와 예외처리 및 전환 방법에 대해 알아보자. 예외의 종류와 특징 자바에서 throw를 발생시킬 수 있는 예외는 크게 세 가지가 있다. Error 시스템에 뭔가 비정상적인 상황이 발생했을 경우에 사용된다. 주로 자바 VM에서 발생시키며, 애플리케이션에서 코드로 잡을 수 없으며, 별도로 처리하지 않아도 된다. Exception 과 체크 예외 java.lang.Exception 클래스와 그 서브클래스로 정의되며, 에러와 달리 개발자들이 만든 애플리케이션 코드의 작업중 예외상황이 발생할 경우 사용된다. 체크예외는 throw로 던지던가, catch 로 잡아 주어야 컴파일 에러가 발생하지 않는다. RunTimeExcepti..
-
토비의 스프링[3] 템플릿Spring 2021. 1. 14. 18:31
OCP(OpenClosePrinciple) : 기존의 코드가 변경되지 않으면서 기능을 추가할 수 있도록 설계 리소스의 반환 초난감 DAO에서의 PreparedStatement와 Connection을 사용하는 메소드들은 에러가 발생할 경우 close() 메소드들을 실행을 하여 리소스를 반환을 할 수 없기에 어떤 상황에서도 리소스를 반환할 수 있도록 try/catch/finally 구문을 사용을 권장하고 있다. public int getCount() throws SQLException { Connection c = null; PreparedStatement ps = null; ResultSet rs = null; try { c = dataSource.getConnection(); ps = c.prepareS..
-
토비의 스프링[2] 테스트Spring 2020. 12. 23. 19:11
서론 효율적인 테스트 방법과 기능에 대한 확신을 주는방법에 대해 알아보자. ** 본 예제는 SpringBoot JUnit5로 진행했습니다. ** DAO 테스트 문제점 DAO를 테스트 하기 위하여 JSP 뷰 등 모든 레이어의 기능을 다 만들고 테스트를 할 경우 어디서 문제가 발생 했는지를 찾아내는 수고도 필요하며, 너무 많은 코드를 구성했기에 비효율적이다. 단위 테스트 1. 한 가지 관심에 집중할 수 있는 작은 단위의 테스트다. 2. 크기가 어느정도인지 정확하게 정해진건 아니다. 3. 일반적으로 단위는 작을수록 좋다. 4. 매번 DB의 상태가 달라지고, 테스트를 위해 DB를 특정 상태로 만들 수 없다면 단위 테스트로서 가치가 없어진다. 자동수행 테스트 코드 1. 매번 웹 화면을 통한 테스트를 진행하는것에 ..
-
토비의 스프링[1] 오브젝트와 의존관계Spring 2020. 12. 17. 01:20
서론 관심사 분리하여 DAO를 처리하는 방법과 싱글톤 패턴 및 애플리케이션 컨텍스트에 대해 알아보며, 제어의 역전(IoC)에 대해 알아보자. 관심사 분리 초난감 DAO 처리하기 public class UserDao { public void add(User user) throws SQLException, ClassNotFoundException { Class.forName("com.mysql.cj.jdbc.Driver"); Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/sys?serverTimezone=UTC&characterEncoding=UTF-8", "root", "1234"); PreparedStatement ps =..
-
H2 DB 사용하기데이터베이스 2020. 11. 11. 21:36
H2 DB란? H2DB는 자바 기반의 오픈소스 관계형 데이터 베이스 관리 시스템입니다.(RDBMS) H2DB는 서버모드, 인베디드 모드의 인메모리 기능을 지원한다. 무엇보다 간편한 설치(저용량)으로 인하여 사용하기 쉬우며 테스트에 적합하다. DB자체가 매우 라이트하며, 속도도 빠르고 JDBC API 까지 지원하고 있다. 다운하기 h2database.com/html/main.html 다운로드 후 설치 저게 끝이다... 설치 이후 설치경로의 /bin/h2.bat 을 실행시켜주면 된다.(window 기준 linux는 sh 실행) 실행을 할 경우 8082포트에서 가동되며 웹상에서 h2DB를 사용할 수 있게된다.
-
챕터[21] 결론 그리고 자바의 미래모던자바인액션 2020. 10. 29. 15:41
서론 자바 8기능 자바 8이후 변경사항 동작 파라미터화(람다와 메서드 참조) 메서드로 전달되는 값은 Function, Predicate, BiFunction 등의 형식을 가지며, 메서드를 수신한 코드에서는 apply, test 등의 메서드로 코드를 실행할 수 있다. 람다는 자바8에서의 추가된 가장 혁신적인 기능이다. 스트림 API (Java8) 컬렉션의 n번 탐색하여 결과를 찾아내는 연산을 스트림을 API의 파이프라이닝을 통하여 한번의 게으른 연산으로 값을 찾을 수 있다. parallel 메서드로 인하여 스트림을 병렬로 처리할 수 있다. 내부반복, 외부반복, 부작용 없는 연산, 람다와 메서드 참조로 파라미터화된 메서드, 함수형 개념이 핵심이다. CompletableFuture 클래스 (Java8) Fut..