분류 전체보기
-
2장) 2.3 개발자를 위한 테스팅 프레임워크 JUnitJava & Spring/토비의 스프링 3.1 2021. 6. 1. 13:47
2장 테스트 2.3 개발자를 위한 테스팅 프레임워크 JUnit 스프링 프레임워크도 JUnit을 이용해 테스트를 통해 개발됨 테스트 없이는 스프링도 의미 없음 빌드 툴 ANT, Maven, Gradle과 같은 빌드 툴과 스크립트를 사용한다면 ~> 빌드 툴에서 제공하는 Junit 플러그인이나 태스크를 이용해 JUnit 테스트를 실행 테스트 결과의 일관성 DB 서버가 다운되거나 네트워크 장애 등 외부 상태에 따라 테스트가 성공하기도 실패하기도 한다면 좋지 못한 테스트이다. 또한, 테스트를 마친 후, 수행하기 이전으로 DB의 상태를 돌려야 함 동일한 결과를 보장하는 테스트 예시의 테스트를 시작하기 전에 기존의 데이터를 항상 지우고 시작하게 설정하면, 해당 add를 하는 메소드에서, 항상 같은 결과 값을 리턴한다..
-
2장) 2.1 USERDAOTEST 다시보기 ~ 2.2 USERDAOTEST 개선Java & Spring/토비의 스프링 3.1 2021. 5. 27. 13:51
2장 테스트 객체지향 기술과 더불어 하나의 도구로 스프링이 강조하고 가치를 둔다. 2.1 UserDaoTest 다시보기 테스트의 유용성 테스트란, 예상하고 의도했던 대로 코드가 정확히 동작하는지를 확인 ~> 확신 결과가 원하는 대로 나오지 않는 경우 ~> 코드나 설계에 결함 확인 웹을 통한 DAO 테스트 방법의 문제점 문제점 DAO 뿐만 아니라 서비스, 컨트롤러, 뷰 등 모든 레이어 기능을 만든 후, 테스트가 가능 테스트에 실패하면, 어디에서 문제가 발생했는지 찾아야하는 수고가 필요 단위 테스트 테스트는 가능하면 작은 단위로 쪼개서 집중해서 할 수 있어야한다. 관심이 다르다면, 테스트할 대상을 분리하고 집중해서 접근한다 작은 단위 코드에 대한 테스트가 단위 테스트이다. 정해진 범위나 단위가 정해지지는 않..
-
1장) 1.8 XML을 이용한 설정 ~ 1.9 정리Java & Spring/토비의 스프링 3.1 2021. 5. 27. 13:50
1장 오브젝트와 의존관계 1.8 XML을 이용한 설정 장점 별도의 빌드 작업이 필요 없다 환경이 달라져서 오브젝트의 관계가 바뀌는 경우, 빠르게 변경사항 반영 가능 XML 설정 DI 정보가 담긴 XML 파일은 를 루트 엘리먼트로 사용 @Configuration과 @Bean이 붙은 자바 클래스로 만든 설정과 내용이 동일 @Bean의 DI 정보 3가지 빈의 이름 @Bean 메소드 이름 (getBean()에서 사용됨) 빈의 클래스 빈 오브젝트를 어떤 클래스를 이용해서 만들지 정의 빈의 의존 오브젝트 생성자나 수정자 메소드를 통해 의존 오브잭트를 주입 의존 오브젝트는 하나 이상일 수 있음 connecitonMaker() 전환 자바 코드 설정 정보 XML 설정 정보 빈 설정 파일 @Configuration 빈 이..
-
부스트캠프2020(5기) 후기ETC 2021. 5. 23. 16:29
세 줄 요약📃 할까 말까 고민한다면 무조건 하세요 !!! 웹 개발에 대한 기본부터 깊은 부분까지 스스로 학습할 수 있는 좋은 기회가 됩니다 개발에 대해 진심인 좋은 동료들과 네트워크 & 취직의 기회가 주어지는 1 + 2 입니다! 부스트캠프2020 챌린지🚶 챌린지 합격 글 보러가기 챌린지 회고 & 멤버십 합격 글 보러가기 너무 오랜 시간 지나기도 했고 그날의 기분과 느낌, 분위기는 위의 두 글에서 상세하게 작성되어 있다고 생각합니다 !! 글을 작성하는 지금 시점(2021.05.23)에서 생각해보면, 개발에 기본이 되는 기초 지식을 학습하면서 코드레벨로 직접 구현해보는 재밌는 경험이었다고 생각합니다 😊 부스트캠프2020 멤버쉽👼😈 교육 구성 학습 스프린트 총 3개의 스프린트로 구성되어 있었고, 각 스프린트는..
-
1장) 1.6 싱글톤 레지스트리와 오브젝트 스코프 ~ 1.7 의존관계 주입(IoC)Java & Spring/토비의 스프링 3.1 2021. 5. 21. 10:38
1장 오브젝트와 의존관계 1.6 싱글톤 레지스트리와 오브젝트 스코프 스프링의 Application Context는 예시로 직접 만들었던 오브젝트 팩토리(DaoFactory)와 차이가 있다. 오브젝트의 동일성과 동등성으로 말하면 이해하기 쉽다. DaoFactory는 호출할 때마다 새로운 오브젝트를 만들어서 반환한다. (다른 객체 -> 동등성) 스프링의 Application Context에 DaoFactory를 설정정보로 등록(@Configuration)하고 getBean으로 빈을 호출하면 같은 주소값을 가진 오브젝트를 반환한다. (같은 객체 -> 동일성) 싱글톤 레지스트리로서 Application Context Application Context는 IoC 컨테이너이자 싱글톤을 저장하고 관리하는 싱글톤 레지..
-
1장) 1.3 DAO의 확장 ~ 1.5 스프링의 IoCJava & Spring/토비의 스프링 3.1 2021. 5. 17. 15:03
1장 오브젝트와 의존관계 1.3 DAO의 확장 모든 오브젝트는 관심사가 바뀔 때마다 변경이 일어난다. 앞서 팩토리 메소드 패턴을 통해 변화의 성격이 다른 것을 분리해서, 서로 영향을 주지 않고 독립적으로 변경하도록 리팩토링을 했다. 이번 장에서는 상속관계가 아닌 완전한 독립 클래스로 만들어보자. public class UserDao { private SimpleConnectionMaker; public UserDao() { simpleConnectionMaker = new SimpleConnectionMaker(); } public void add(User user) throws ClassNotFoundException, SQLEXception { Connection c = simpleConnection..
-
1장 오브젝트와 의존관계 (1.1 초난감 DAO ~ 1.2 DAO의 분리)Java & Spring/토비의 스프링 3.1 2021. 5. 13. 17:45
1장 오브젝트와 의존관계 스프링의 핵심 철학 : 객체지향 프로그래밍 객체의 라이프 사이클과 관계에 집중 디자인 패턴, 리팩토링, 단위 테스트 등과 같은 설계와 지식을 요구 1.1 초난감 DAO 두 가지 이상의 관심을 포함하고 있거나, 중복되는 코드를 가지고 있는 경우 유지 / 보수에 어려움을 겪는다. 하기 예시 코드를 보면서 어떤 문제점이 있는지 생각해보자. // ... import statement pubilc class UserDao { public void add(User user) throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); Connection c = DriverManger.getConne..
-
MySQL 권한 설정SQL 2021. 4. 29. 16:53
MySQL 권한 설정 5.x 버전까지는 테이블에 권한을 추가하면서 아이디를 생성해주는게 가능했다. GRANT ALL PRIVILEGES ON target_database.* to 'user_name'@'localhost' identified by 'user_pass'; 하지만 8.x 버전으로 올라오면서, 유저를 먼저 생성해줘야 구문이 통과가 됐다. (위의 쿼리를 실행하면 quote( ' )가 조금 이상하게 찍힌 쿼리로 변경되어 실행됐다.) CREATE USER 'user_name'@'localhost' identified by 'user_pass'; GRANT ALL PRIVILEGES ON target_database.* to 'user_name'@'localhost'; 이렇게 순차적으로 유저를 먼저 ..