프로그래밍 74

[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를 직접 사용..

[Java] Static

Static static 키워드는 메모리에 한 번 할당 되고, 프로그램이 종료될 때 해제되는 것을 의미한다. 프로세스 메모리 배치 위의 배치에서 Data 영역에 전역 변수와 정적(static) 변수가 저장된다. 따라서 GC의 관리 영역 밖에 존재하므로 남발하면 퍼포먼스에 악영향을 끼칠 수 있다. 객체가 생성되기 이전에 이미 할당되어 있으므로, 객체 생성 없이 바로 사용할 수 있다. 일반적으로 만든 Class는 Static 영역에 생성되고, new 연산자를 통해 생성한 객체는 Heap 영역에 생성된다. 장점 static 변수의 경우 여러 객체자 하나의 메모리를 참조하도록 할 때 사용하면, 메모리 효율이 높아진다. 단점 static 메소드의 경우 객체 생성 없이 호출이 가능하지만 지양하는 방식이다. stat..