프로그래밍 75

[Java] 중첩 선언과 익명 객체

이것이 자바다 도서 정리 목차 중첩 클래스 인스턴스 멤버 클래스 정적 멤버 클래스 로컬 클래스 바깥 멤버 접근 중첩 인터페이스 익명 객체 중첩 클래스 클래스가 여러 클래스와 관계를 맺는 경우엔 독립적으로 선언하는 좋다. 그러나 특정 클래스만 관계를 맺을 경우, 중첩 클래스로 선언하는 것이 유지보수에 도움이 되는 경우가 많다. 중첩 클래스 클래스 내부에 선언한 클래스 클래스 멤버를 쉽게 사용할 수 있다. 외부엔 중첩 관계 클래스를 감추어, 코드의 복잡성을 줄일 수 있다. 멤버 클래스 : 클래스의 멤버로서 선언되는 중첩 클래스 로컬 클래스 : 메소드 내부에 선언되는 중첩 클래스 인스턴스 멤버 클래스 [public] class A { [public || private] class B{ } } 위와 같이 클래스..

[Java] 인터페이스

이것이 자바다(개정판) 기반 정리 목차 인터페이스 역할 인터페이스와 구현 클래스 선언 상수 필드 추상 메소드 디폴트 메소드 정적 메소드 private 메소드 다중 인터페이스 구현 인터페이스 상속 타입 변환 다형성 객체 타입 확인 봉인된 인터페이스 인터페이스 역할 인터페이스 사전적인 의미로 두 장치를 연결하는 접속기를 말한다. 자바에선, 서로 다른 두 객체를 연결하는 역할을 한다. 인터페이스 구현 객체 객체 A - 메소드 호출 -> 자동 타입 변환 어떤 객체를 대입하느냐에 따라 메소드 실행 결과가 다르게 나오는 것이다. ex) public interface Vehicle { void run(); } public class Driver { void drive(Vehicle vehicle) { vehicle...

[Java] 상속

이것이 자바다(개정판) 기반 정리 목차 상속 개념 부모 생성자 호출 메소드 재정의 final클래스와 final 메소드 protected 접근 제한자 타입 변환 추상 클래스 봉인된 클래스 상속 개념 상속 객체지향 프로그램에서 부모 클래스의 필드와 메소드를 자식 클래스에게 물려주는 것을 말한다. 중복되는 코드를 줄여줘 효율적으로 코드를 작성할 수 있다. public class 자식 클래스 extends 부모클래스 { } 클래스 상속 자바는 다중 상속을 허용하지 않는다. 즉, extends 뒤엔 하나의 부모 클래스만 올 수 있다. 부모 생성자 호출 자식클래스 name = new 자식클래스(); 위의 코드는 자식 객체를 생성한 것으로 보인다. 하지만, 부모 객체가 먼저 생성된 다음 자식 객체가 생성된 것이다. ..

[Spring] 스프링의 주요 특징

POJO 기반의 구성 POJO ( Plain Old Java Object) 스프링은 객체간의 관계를 구성할 때, 별도의 API 등을 사용하지 않는 POJO의 구성만으로 가능하도록 제작되어 있다. 즉, 일반적인 Java 코드를 이용해 객체를 구성하는 방식을 그대로 스프링에서 사용할 수 있다. 이것은 코드를 개발할 때 개발자가 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않다는 것을 의미한다. 그래서 생산성에서 유리하고, 코드에 대한 테스트 작업도 좀 더 유연하게 할 수 있다. 의존성 주입(DI)를 통한 객체 간의 구성 관계 의존성 (Dependency) : 하나의 객체가 다른 객체의 상태에 따라 영향을 받는 것이다. 주입(Injection) : 외부에서 밀어넣는 것. 객체를 얻기 위해 주체가 수동적인 ..

[Spring boot / JPA] 7. 웹 계층 개발

아래 강의 정리 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., 스프 www.inflearn.com 목차 홈 화면과 레이아웃 회원 등록 회원 목록 조회 상품 등록 상품 목록 상품 수정 변경 감지와 병합(merge) 상품 주문 주문 목록 검색, 취소 홈 화면과 레이아웃 Log @Slf4j Logger log = LoggerFactory.getLogger(getClass()); HTML 관례상 th라고 많이 쓴다. th:replace와 같은 속성들을 사용할 수 있다. fragments/~로..

[Spring boot / JPA] 6. 주문 도메인 개발

아래 강의 정리 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., 스프 www.inflearn.com 목차 주문, 주문 상품 엔티티 개발 주문 서비스 개발 주문 기능 테스트 주문 검색 기능 개발 구현 기능 상품 주문 주문 내역 조회 주문 취소 주문, 주문 상품 엔티티 개발 createOrder (생성 메서드) 주문 엔티티를 생성할 때 사용한다. 주문 회원, 배송 정보, 주문 상품의 정보를 받아서 실제 주문 엔티티를 생성한다. cancle (주문 취소) 주문 취소시 사용한다. 문 상태를 취..

[Spring boot / JPA] 5. 상품 도메인 개발

아래 강의 정리 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., - 강 www.inflearn.com 목차 상품 엔티티 개발 (비즈니스 로직 추가) 상품 리포지토리 개발 상품 서비스 개발 상품 엔티티 개발 (비즈니스 로직 추가) 구현 기능 상품 등록 상품 목록 조회 상품 수정 addStock() 재고가 증가하거나, 상품 주문을 취소해서 재고를 다시 늘려야 할 때 사용한다. removeStock() 만약 재고가 부족하면, 예외가 발생한다. 주로 상품을 주문할 때 사용한다. 상품 리포지토리..

[Spring boot / JPA] 4. 회원 도메인 개발

아래 강의 정리 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., - 강 www.inflearn.com 목차 회원 리포지토리 개발 회원 서비스 개발 회원 기능 테스트 회원 기능 회원 등록 : save 회원 목록 조회 : findOne, findAll, findByName 회원 리포지토리 개발 @Repository : 스프링 빈으로 등록, JPA 예외를 스프링 기반 예외로 예외 변환한다. @PersistenceContext : 스프링이 엔티티 매니저(EntityManager)를 만들어 in..

[Spring boot / JPA] 3. 애플리케이션 구현 준비

다음 강의 정리 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., - 강 www.inflearn.com 목차 구현 요구사항 애플리케이션 아키텍처 구현 요구사항 기능 목록 회원 기능 - 회원 등록 - 회원 조회 상품 기능 - 상품 등록 - 상품 수정 - 상품 조회 주문 기능 - 상품 주문 - 주문 내역 조회 - 주문 취소 애플리케이션 아키텍처 계층형 구조 사용 controller, web : 웹 계층 service : 비즈니스 로직, 트랜잭션 처리 repository : JPA를 직접 사용..