일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 그래프
- 이분탐색
- 재귀
- Bruteforce
- 정렬
- 해시맵
- 프로그래머스
- Sort
- 자료구조
- 스택
- 집합
- algorithm
- 완전탐색
- 멘딕스
- 백트래킹
- 자바
- 가중치없는그래프
- microflow
- lcap
- SQL
- git
- 알고리즘
- 매개변수 탐색
- 트리
- Recursion
- dfs
- MySQL
- 반효경교수님
- domain model
- Mendix
- Today
- Total
목록BackEnd (6)
mondegreen
IoC(Inversion of Control) 프로그램의 제어의 흐름을 직접 하는 것이 아니라 외부에서 관리하는 경우 제어의 역전이라고 한다. 여기서 프레임워크와 라이브러리의 차이도 알 수 있는데 만약 내가 작성한 코드가 직접 제어를 담당한다면 라이브러리이고 그렇지 않다면 프레임워크라고 할 수 있다. DI(Dependency Injection) 애플리케이션 실행 시점에 외부에서 실제 구현 객체를 생성한고 클라이언트에 전달해서 클라이언트와 서버의 실제 의존 관계가 연결되는 것을 의존관계 주입이라고 한다. 객체 인스턴스를 생성하고 그 참조값을 전달해서 연결되는데 의존관계 주입을 사용함으로써 클라이언트 코드를 변경하지 않고 클라이언트가 호출하는 대상의 타입 인스턴스를 변경할 수 있다. "정적인 클래스 의존관계..
1. SRP 단일책임의 원칙 기능을 변경했을 때 연계되는 변경이 많다면 단일 책임 원칙을 지키지 못한 것 -> 하나의 클래스는 하나의 책임만 가져야 한다. 2. OCP 개방폐쇄의 원칙 소프트웨어 요소는 확장에는 열려있고 변경에는 닫혀 있어야 한다. 즉, 다형성 특징을 활용해서 확장은 가능한 반면 변경은 없는 것을 말한다. 단, 스프링의 DI(컨테이너)를 함께 활용해야 가능하다. 3. LSP 리스코프 치환의 원칙 자동차의 경우 엑셀을 밟으면 앞으로 가는 기능을 구현해야 한다. 하위 클래스도 엑셀이라는 인터페이스를 상속받았을 때 앞으로 가는 기능을 구현해야 한다. 뒤로 가게 구현한다면 LSP 위반 -> 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다. 4...
스프링이란, 객체 지향 언어인 자바의 강력한 특징을 살려냄으로써 좋은 객체 지향 애플리케이션을 개발할 수 있게 돕는 프레임워크 (EJB로 개발할 당시에는 EJB에 의존적이었기 때문에 자바의 객체 지향 특성을 다 잃어버리는 한계가 있었음) 따라서 인터페이스(역할)을 안정적으로 잘 설계해야 클라이언트에게 영향을 주지 않고 기능을 다양하게 변경할 수 있다(구현) => 즉, 확장 가능한 설계라고 말할 수 있다.
1. @Entity 2. @Getter (@Setter는 사용하지 않는 것을 권고) 3. 엔티티간 관계 설정 @ManytoOne => 연관관계의 주인이 되며 DB에서 FK, @JoinColumn(name="외래키 컬럼")와 함께 쓰임 이쪽에 데이터 변경이 이루어져야 다른 쪽에도 변경이 적용됨. @OnetoMany => 연관관계의 주인이 되지 못함, (mappedBy="many에 있는 주인인 인스턴스") @OnetoOne => 주인이되되는 엔티티는 access가 빈번한 곳으로 위와 같은 규칙으로 작성 4. 상속 관계인 경우 Inheritance(strategy=InheritanceType.구현방식) 구현방식1: 단일 테이블 = Discrmination Column과 Discrimination Value 적..
1. H2 데이터 베이스 사용(버전: 1.4.200) - Generic H2(Server) 모드: 실제 데이터베이스처럼 별도로 띄우는 방식 - 실행이 잘 되지 않는 경우 URL을 127.0.0.1:8082 또는 localhost:8082로도 접속 가능 2. Maven 프로젝트로 생성하며 Maven Repository의 라이브러리 활용 3. POM.xml에 라이브러리 추가 - HIBERNATE-ENTITYMANAGER: 스프링 부트 버전과 호환 잘되는 버전을 찾아서 의존성 주입(레퍼런스 독스 -> 디펜던시) - H2 데이터 베이스는 로컬에 다운로드 받아 사용하는 버전으로 의존성 주입 4. JPA 사용하기 위해 설정: Persistence.xml - 위치: resources\META-INF 경로에 작성 - ..
[강의 목표] 1. 객체와 테이블 설계 매핑 1)객체와 테이블을 제대로 설계하고 매핑하는 방법 2) 기본 키와 외래 키 매핑 3) 1:N, N:1, 1:1, N:M 매핑 4) 실무 노하우 + 성능까지 고려 5) 복잡한 시스템도 JPA로 설계할 수 있도록 2. JPA 내부 동작 방식 이해 1) JPA 내부 동작 방식 (그림 + 코드) 2) 어떠한 SQL을 만들어내고 어느 단계에서 실행하는지에 대한 이해 객체 지향 프로그래밍과 관계형 데이터베이스의 패러다임에 차이가 있기 때문에 개발자에게 어려움이 있음 객체 지향 프로그래밍은 추상화, 캡슐화, 정보은닉, 상속, 다형성 등 시스템의 복잡성을 제어할 수 있는 다양한 장치들을 제공한다. 그리고 객체를 RDB나 NoSQL, File 등 다양한 저장소에 영구 보관할 ..