목록Spring Framework (79)
seo92iy
단일 책임 원칙 - 하나의 모듈은 하나의 책임을 가져야 한다. 변경이 필요할 때 수정 대상이 명확해진다. 메일 서비스 추상화 com.springsource.javax.mail-1.4.0.jar 테스트할 때는 메일서버를 이용하지 않고 JavaMail과 같은 인터페이스를 가진 오브젝트를 만들어서 사용한다. 문제 1. JavaMail 핵심 API에는 DataSource처럼 인터페이스로 만들어져서 구현을 바꿀 수 있는 게 없다. Session이 인터페이스가 아니라 final 클래스이고 private이다. -> 불가능 JavaMail 대신 테스트용 JavaMail로 대체해서 사용 JavaMailSender DummyMailSender를 만들어서 테스트 테스트가 너무 거창하면 비효율적이다. 간단한 환경을 만들어 주..
트랜잭션 더이상 나눌 수 없는 단위 작업 작업이 하나의 트랜잭션에서 이루어지지 않았기 때문에 작업 중간에 예외가 발생하여 중단되면 처음으로 돌아가지 않고 중간 과정에서 멈춘다. 트랜잭션을 보장하는 가까운 예로 DB. 트랜잭션 롤백 / 트랜잭션 커밋 트랜잭션 경계설정 기본 설정은 자동으로 커밋 -> setAutoCommit(false) ~ commit() / rollback() 로컬 트랜잭션 - 하나의 DB 커넥션 안에서 만들어지는 트랜잭션 트랜잭션 동기화 Connection 오브젝트를 저장소에 보관해두고, 이후에 호출되는 DAO의 메소드에서는 저정된 Connection을 가져다 사용 동기화 저장소는 작업 스레드마다 독집적으로 Connection 오브젝트를 저장/관리하기 때문에 멀티스레드 환경에서도 출돌X..
IoC 컨테이너 - bean을 만들고 엮어주고 제공해준다. bean - IoC컨테이너가 관리하는 객체 baen들 서로간의 의존성 주입을 IoC 컨테이너가 해준다. bean 끼리만 가능. (bean이 아니어도 가능은 하지만 아주 복잡하고 권장하는 방법이 아니다.) 싱글톤 - 객체 하나를 애플리케이션 전반에서 계속해서 재사용 bean 생성 1 component scan 2 bean 직접 등록(XML또는 JAVA로 만들면 되는데 최근 추세는 JAVA) Repository는 특별한 방법으로 빈으로 등록된다. 보면 애노테이션이 없는데도 bean으로 등록되는데 JPA가 제공하는 기능에 의해 빈으로 등록된다. 특정한 인터페이스를 상속받은 경우 인터페이스를 상속받고 있는 클래스를 찾아서, 인터페이스의 구현체를 내부적으..
UserDao 에 사용자 레벨 추가 enum 활용 자주 나오는 실수 : SQL문 DAO는 데이터를 어떻게 가져오고 조작할지 다루는 곳. 비지니스 로직을 두는 곳이 아니다. 분리 UserService.class 서버 오류로 작업이 중간에 중단되면 진행상황에서 멈춰야 할까 아니면 초기로 돌려야 할까 사용자 간에 차별이 느껴질 수 있기 때문에 초기로 돌리는 것을 선택.
SQLException의 비표준 에러코드, SQL 상태정보 DB별 에러코드 참고해서 같은 원인의 예외끼리 전환으로 묶는다. 근데 일일이 확인하는건 너무 비효율적이다. 예외 코드 매핑정보 테이블 만들고 이용 스프링에서는 SQLException -> DataAccessException 대체 가능 예외들을 추상화해서 정리. 세분화 서브클래스 BadSqlGrammarException - SQL 문법 에러 InvalidDataAccessResourceUsageException DataAccessResourceFailureException - DB 커넥션 에러 DataIntegrityViolationException - 데이터 제약 조건 위배 / 일관성 없는 작업 DuplicatedKeyException - 중복키..
Hardware - Kernel - Shell - Application 사용자 ----명령어---> Shell ----커널이 이해할 수 있도록 해석해서 전달 ---> Kernel Shell Kernel 분리되어 있으면서 다양한 Shell을 사용할 수 있음.] bash / zsh 기본적으로 bash 쓰고 있음. echo $0 으로도 확인 가능 zsh zshell 다른 쉘. bash에는 없는 편의성 기능이 있다.
출력 저장 ls -l > result.txt 출력에는 2종류가 있음. Standard Output, Standart Error Standard Output은 저장되지만 Standard Error은 터미널에 출력되고 저장되지 않는다. > = 1> Standard Error를 저장하려면 rm hello.txt 2> error.log (txt여도 상관은 없더라. 차이가 있나?) -> rm hello.txt 1> result.txt 2> error.log 로 사용 가능 https://slideplayer.com/slide/5126304 Last Time… on the website. - ppt video online download Lecture 6 Shell Scripting slideplayer.com (7..