스터디(4)
-
22/12/17
1. spring security 수업을 들었다. 주중에 밀린 수업을 들었다. 내일까지 밀린 수업을 듣고 이번 한 주 내용을 잘 복습해보려 한다. 2. 팀 스터디 준비 오늘은 운영체제 내용 중 멀티 스레드, 멀티 프로세싱과 공유 자원 및 임계 영역을 학습하고 정리했다. 유튜브에 '쉬운 코드' 채널에 운영체제 영상이 몇 개 있는데 설명을 매우 잘하시는 것 같다. 이 채널의 다른 영상들도 기대가 된다. 이모저모 오늘은 주말이라 그런가 학습 시간이 굉장히 짧았다. 낮에는 헌혈의 집에서 오랜만에 헌혈을 하고 왔다. 마지막 헌혈이 2018년에 신병교육대에서 한 것이더라. 그리고 내가 쓰는 댓글, 답글의 프로필 사진이 현재 프사가 아닌 티스토리가 제공한 기본 프사로 설정되더라 이거 변경하는 작업을 좀 했다. 또 하..
2022.12.18 -
[토비의 스프링 3.1] 3.1 다시 보는 초난감 DAO
1장에서 초난감 DAO 코드에 DI를 적용하면서 관심사가 다른 코드를 분리하였으며, 변경과 확장에 유연한 구조로 변경하였다. 이는 개방 폐쇄 원칙(OCP)을 잘 준수했다고 볼 수 있다. 3장에서는 템플릿에 대해 학습한다. 템플릿이란 변경이 거의 일어나지 않는 부분을 자유롭게 변경되는 부분과 독립시켜서 효과적으로 활용할 수 있도록 하는 방법이다. 3장에서 스프링에 적용된 템플릿 기법을 살펴보자. 3.1 다시 보는 초난감 DAO 아직 UserDao의 코드에는 문제점이 남아 있다. 예외 상황에 대한 처리가 부족하다. 한번 살펴보자. 3.1.1 예외처리 기능을 갖춘 DAO JDBC 코드에는 예외 처리를 반드시 해주어야 한다. 정상적인 JDBC 코드의 흐름을 따르지 않고 중간에 예외가 발생한 경우 사용한 리소스를..
2022.07.05 -
[토비의 스프링 3.1] 2.3 개발자를 위한 테스팅 프레임워크 JUnit
JUnit 프레임워크를 자세히 살펴본다. 스프링의 핵심 기능 중 하나인 스프링 테스트 모듈도 JUnit을 이용한다. 따라서 JUnit은 스프링을 활용하려면 꼭 사용할 줄 알아야 한다. 2.3.1 JUnit 테스트 실행 방법 IDE와 빌드툴로 테스트 실행이 가능한데, IDE가 손쉽고 빠른 테스트를 제공한다. 실행 방법은 따로 포스팅 할 것이 없어 해당 절은 생략한다. 2.3.2 테스트 결과의 일관성 JUnit을 적용해서 테스트 코드를 만들었으나, 아직 개선할 점이 남아있다. 가장 불편했던 점은, 매번 테스트를 실행하기 전에 DB의 USER 테이블 데이터를 지워야 했다는 것이다. 깜빡 잊고 그냥 실행한 경우, 등록된 사용자 정보와 기본키가 중복된다면서 add() 메소드 실행중에 에러가 발생할 것이다. 이 경..
2022.06.03 -
[토비의 스프링 3.1] 1.3 DAO의 확장
앞서 1.2장에서 "DB 연결을 어떤 방법으로 할 것인가"라는 관심사를 중심으로 UserDao를 상하위 클래스로 분리하였다. 추상클래스로 선언하고 이를 상속한 서브클래스에서 구체적인 getConnection()메소드를 구현했다. 하지만 자바는 단일 상속만을 허용하기때문에 상속은 비효율적이며, 상속 관계가 의외로 결합도가 높아 부모의 코드가 변경되는 경우 자식 클래스의 코드가 변경되는 일이 빈번하다는 단점이 있었다. 1.3.1 클래스의 분리 그래서 아예 다른 클래스로 화끈하게 분리한다. 상속관계도 아닌 완전히 독립적인 클래스로 만들어본다. SimpleConnectionMaker라는 새로운 클래스를 만들고, DB 생성 기능을 그 안에 넣는다. UserDao에서는 생성자를 통해 인스턴스 변수로 SimpleCo..
2022.05.25