분류 전체보기
-
[spring] tdd와 단위 테스트spring 2023. 5. 22. 23:26
1. tdd 사이클 실패하는 케이스의 테스트 구현 테스트가 성공하도록 프로덕션 코드를 구현 테스트 코드와 프로덕션 코드를 리팩토링 ※ 프로덕션 코드 : 프로그램 구현을 담당하는 부분으로 사용자가 실제로 사용하는 소스 코드 ※ 리팩토링 : 새로운 기능을 만들지 않고 코드를 개선하는 체계적인 프로세스 ※ 리팩토링 주요 기법 Extract Method – 그룹으로 묶을 수 있는 코드의 메서드 추출 – 결합도 감소 Extract Class – 두 개의 클래스 업무를 신규 클래스로 이동 – 응집도증가 – 결합도 감소 Move Method – 정의된 클래스보다 타 클래스 다수 호출 시 이동 – 응집도 증가 – 결합도 감소 Rename Method – 메서드 이름이 목적을 드러내도록 이름 변경 – 가독성 향상 – 유..
-
[spring] spring과 mysql 연결spring 2023. 5. 8. 23:24
1.파일명: /sbb/build.gradle [기존 예시] (... 생략 ...) dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' developmentOnly 'org.springframework.boot:spring-boot-devtools' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' # H2 연결 runtimeOnly 'com.h2database:h2' } (... 생략 ..
-
[spring] 프록시 (Proxy) 패턴spring 2023. 5. 2. 19:55
▷프록시 패턴 정의 - 구조 패턴 카테고리 - 클라이언트는 실제 객체 대신 프록스 객체를 통해 작업 요청 ▷프록시 패턴 구조 Subject : Proxy와 RealSubject를 하나로 묶는 인터페이스 (다형성) 대상 객체와 프록시 역할을 동일하게 하는 추상 메소드 operation() 를 정의한다. 인터페이스가 있기 때문에 클라이언트는 Proxy 역할과 RealSubject 역할의 차이를 의식할 필요가 없다. RealSubject : 원본 대상 객체 Proxy : 대상 객체(RealSubject)를 중계할 대리자 역할 프록시는 대상 객체를 합성(composition)한다. 프록시는 대상 객체와 같은 이름의 메서드를 호출하며, 별도의 로직을 수행 할수 있다 (인터페이스 구현 메소드) 프록시는 흐름제어만 ..
-
[spring] MyBatis와 Hibernate의 차이spring 2023. 3. 28. 00:13
1) MyBatis [장점] ▶ 단순하고 가벼운 프레임 워크 ▶ 개발이 매우 쉽다. ▶ 데이터베이스에 종속될 수 있는 SQL 언어를 사용 ▶ 성능 자체는 Hibernate보다 좋음 [단점] ▶ 데이터베이스 변경이 불가능하다. ▶ 변경하려면 쿼리 자체를 수정해야 한다. 2) Hibernate - JPA 구현체 [장점] ▶ ORM(Object Relational Model) : 객체와 관계형 데이터베이스의 데이터를 자동으로 연결 ▶ 데이터베이스와 독립적인 HQL을 사용 ▶ 데이터베이스 변경이 용이하다. [단점] ..
-
[spring] IntelliJ Cannot resolve symbol 'persistence'spring 2023. 3. 27. 21:19
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 분명 강의자료를 그대로 복붙했음에도 오류가 생겼다. [오류 코드] package hello.hellospring.repository; import hello.hellospring.domain.Member; import javax.persistence.EntityManager; import java.util.List; import java.util.Optional; public class JpaMemberRepository implements MemberRepository { private final EntityManager em; public JpaMemberRepository(EntityManager em) { this.em = ..
-
-
[spring/java] hashmap, ConcurrnetHashMap, HashTable의 차이spring 2023. 3. 21. 16:44
강의에서 hashmap 대신 concurrentHashmap을 사용하는 것을 권장하기에 관련 내용을 찾아보게 되었다. 1. HashMap - 사용 방법 HashMap 변수명 = new HashMap(); Collections.synchornizedMap(HashMap) // 동기화를 할 수 있도록 변경시킬 수 있음 - 특징 ▶ 동기화되지 않으므로 스레드로부터 안전하지 않다.(synchornizedMap를 이용하여 동기화 할 수 있다.) ▶ 단일 스레드에 유리하다. ▶ 응용 프로그램의 CPU 사용량이 급증할 가능성이 높다. ▶ 속도가 빠르다. ▶ 메모리 누수나 원치않은 데이터가 조회되는 문제가 발생할 수 있다. 2. ConcurrnetHashMap - 사용 방법 Map map = new Concurrent..