본문 바로가기
반응형

Back-End89

예습) 스프링 입문 @Transactional 테스트 케이스에 이 어노테이션이 있으면, 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후에 항상 롤백한다. 이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다. @SpringBootTest 스프링 컨테이너와 테스트를 함께 실행한다. @Autowired 키워드 생략가능 조건 생성자가 하나일때는 생략 가능 JdbcTemplate 클래스 JdbcTemplate은 JDBC 코어 패키지의 중앙 클래스로 JDBC의 사용을 단순화하고 일반적인 오류를 방지하는데 도움이 된다. 개발자가 JDBC를 직접 사용할 때 발생하는 다음과 같은 반복 작업을 대신 처리해준다. 커넥션 획득 statement를 준비하고 실행 결과를 반복하도록 루프를 실행 커넥션 종료, stat.. 2023. 5. 3.
예습) 스프링 기초 @AfterEach@AfterEach를 사용하면 각 테스트가 종료될 때 마다 이 기능을 실행한다. @BeforeEach각 테스트 실행 전에 호출됨 테스트가 서로 영향이 없도록 항상 새로운 객체를 생성하고, 의존관계도 새로 맺어줌 OptionalNullPointerException을 방지할 수 있음 null이 올 수 있는 T타입의 객체의 값을 감싸는 Wrapper클래스 복잡한 조건문 없이도 null값으로 인해 발생하는 예외처리를 할 수 있음 of() 메소드나 ofNullable() 메소드를 사용하여 객체를 생성할 수 있음 명시된 값이 null이면 비어있는 Optional객체를 반환함 Streams의 findAny()메소드와 findFirst()메소드의 차이findFirst() : 병렬 처리시 가장 먼저 찾.. 2023. 4. 27.
예습) 스프링 기초 Welcome page(index.html)static 폴더에 index.html을 올려두면 Welcome page 기능을 제공함 static 폴더에 index.html이 없는경우 templates폴더에서 index.html 을 찾음 컨트롤러에서 리턴값으로 문자를 반환하면 뷰 리졸버(’viewResolver’)가 resources:templates 폴더에 가서 화면을 찾아 처리함 스프링 웹 개발 기초정적 컨텐츠 (resources : static)요청하면 서비스 없이 그대로 내려줌요청한 url의 관련 컨트롤러(자바파일의 컨트롤러)를 우선으로 찾고, 컨트롤러가 없으면 static 폴더에 가서 찾음 MVC와 템플릿 엔진 (resources : templates) 요청하면 서버에서 원하는 요청값을 만들어서 내.. 2023. 4. 25.
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 IoC/DI (Inversion of Control - 제어의 역전 / Dependency Injection - 의존성 주입) 프로그래밍에서 의존관계는 new로 표현된다 의존하는 객체(전체)와 의존되는 객체(부분) 사이에 집합관계와 구성관계로 구분할 수 있음 집합 관계 예 : 집 - 냉장고 → 부분이 전체와 다른 생명 주기를 갖는다 구성 관계 예 : 사람 - 심장 → 부분은 전체와 같은 생명 주기를 갖는다 의존 관계Tire 객체를 직접 생성함Tire타입 객체의 종류를 정확히 알아야지만 그에 해당하는 객체를 생성할 수 있음public class Car() { Tire tire; public Car() { tire = new Tire(); } } 의존성 주입1 - 생성자를 통한 의존성 주입Car객체를 생성할.. 2023. 4. 23.
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 어댑터 패턴(Adapter pattern) 한 클래스의 인터페이스를 클라이언트에서 사용하고자 다른 인터페이스로 변환하는 패턴 서로 관계없는 인터페이스들을 함께 사용할 수 있게 하는 패턴 호출당하는 쪽의 메소드를 호출하는 쪽의 코드에 대응하도록 중간에 변환기를 통해 호출하는 패턴 자바 코어 라이브러리의 몇가지 표준 어댑터 예시 java.io.InputStreamReader(InputStream) java.io.OutputStreamWriter(OutputStream) 예) 둥근 구멍들에 정사각형 못들을 맞추기 → 둥근 구멍, 정사각형 못, 정사각형 못을 둥근 구멍에 맞춰주는 어댑터, 클라이언트 사용 코드 등이 필요함 프록시 패턴(Proxy Pattern) 프록시 : 대리자, 대변인이라는 뜻 대리자를 사용하.. 2023. 4. 18.
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 SOLID 객체 지향 프로그래밍 및 설계의 다섯가지 기본 원칙 응집도는 높이고, 결합도는 낮춰라 SRP(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존 역전 원칙 결합도 모듈(클래스) 간의 상호 의존 정도 결합도가 낮으면 모듈 간의 상호 의존성이 줄어들어 객체의 재사용이나 수정, 유지보수가 용이하다. 응집도 하나의 모듈 내부에 존재하는 구성 요소들의 기능적 관련.. 2023. 4. 17.
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 생성자리턴타입이 없는 메소드(void도 없음)개발자가 아무런 생성자도 만들지 않으면 자바는 인자가 없는 기본 생성자를 자동으로 만들어 준다.매개값이 있는 생성자를 하나라도 만든다면 자바는 기본 생성자를 만들어주지 않는다. static 블록클래스가 메모리로 로딩될 때 자동으로 실행계산 작업을 하고나서 그 결과를 static 변수의 초기값으로 주고 싶을 때 사용객체 생성 없이도 사용할 수 있기 때문에 생성자에서 초기화 작업을 하지 않는다. final 키워드클래스에 final → 상속 허용하지 않음변수에 final → 한 번 초기화 되면 값을 변경할 수 없음메소드에 final → 오버라이딩 허용하지 않음 this 키워드지역변수와 속성(객체 변수, 정적 변수)의 이름이 같은 경우 지역 변수가 우선한다.객체 변수.. 2023. 4. 16.
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 객체지향의 상속상위 클래스의 특성을 재사용하는 것상위 클래스의 특성을 확장하는 것is a kind of 관계를 만족해야 한다 인터페이스인터페이스 : be able to 코드를 인간의 언어로 번역하면서 읽기 부모타입으로 생성된 객체가 있을 때 부모클래스의 메소드를 호출하더라도 오버라이딩 된 자식클래스의 메소드가 호출되는 이유자바에서는 다형성을 지원하기 위해 가상 함수 테이블(virtual function table)이라는 개념을 사용한다. 부모 클래스와 자식 클래스에서 모두 같은 이름을 가진 메소드가 존재할 경우, 자식 클래스에서 오버라이딩된 메소드의 주소를 가상 함수 테이블에 저장한다. 이렇게 저장된 가상 함수 테이블은 실제 객체의 타입에 따라 적절한 메소드를 호출하기 위해 사용된다. 정적멤버 접근의 정.. 2023. 4. 15.
예습) 스프링 입문을 위한 자바 객체 지향의 원리와 이해 객체 지향의 4대 특성 캡! 상추다 캡슐화(Encapsulation) : 정보 은닉 상속(Inheritance) : 재사용, 확장, 세분화 (extends) 추상화(Abstraction) : 모델링 다형성(Polymorphism) : 사용 편의 클래스와 객체의 구분 객체: 세상에 존재하는 유일무이한 사물 → 따라서 속성에 값을 가지고 있음 클래스: 분류, 집합, 같은 속성과 기능을 가진 객체를 총칭하는 개념 → 따라서 속성에 값을 가질 수 없다 클래스와 객체의 구분은 개념과 실체로 구분할 수 있다. 예를들어 사람과 김연아가 있을 때 사람은 '개념'이고 김연아는 '실체' 이다. 클래스는 '개념', 객체는 '실체' 이므로 '클래스:객체 = 사람:김연아'의 관계가 성립된다. 사람 줄리엣 = new 사람(); .. 2023. 4. 13.
반응형