일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 자료구조
- 인천여행
- 스프링부트
- Spring Data JPA
- gcp
- JPA
- Spring
- 클라우드 컴퓨팅
- 코드업
- 백트래킹
- Kafka
- 카프카
- Docker
- 로드밸런서
- 알고리즘
- 월미도
- Spring Boot
- 스프링 부트
- 클라우드
- DFS
- 프로그래밍문제
- 스프링
- Elasticsearch
- aws
- 쿠버네티스
- VPC
- springboot
- 백준
- 오일러프로젝트
- Apache Kafka
- Today
- Total
목록분류 전체보기 (120)
GW LABS
JPA를 통한 전체적인 작업 FLOW 엔티티 설계/작성 테스트 코드 작성 (아마도 서비스 레이어) 기능 확인 쿼리 확인 기능완성 9.1 연관관계 매핑 종류와 방향 One to One One to Many Many To One Many To Many 비즈니스 로직의 관점에서는 엔티티간 관계를 단방향으로 설정하고, 필요시 양방향으로 뚫는다 연관관계 주인: 외래키를 갖고 있는 테이블 (상대 엔티티는 읽기 작업만 수행가능) 9.3 일대일 매핑 OneToOne: 일대일 연관관계 매핑 Joincolumn: 외래키 이름 설정 name: 매핑할 외래키의 이름을 설정 referencedColumnName: 외래키가 참조할 상대 테이블의 컬럼명 지정 foreignKey: 외래키를 생성하면서 지정할 제약조건 설정(uniqu..
8.2 JPQL 엔티티 객체를 대상으로 수행하는 쿼리 언어 ex) SELECT p FROM Product p WHERE p.number = ?1; 8.3 쿼리 메서드 살펴보기 쿼리 메서드의 생성 주제(Subject)와 서술어(Predicate)로 쿼리를 생성 ‘By’를 통해 서술어의 시작을 나타낸다. ex) List findByLastnameAndEmail(String lastName, String email); 쿼리 메서드의 주제 키워드 find..By read..By get..By query..By search..By stream..By exists..By: 특정 데이터의 존재여부 count..By: 쿼리 결과로 나온 레코드의 개수 delete..By, remove..By: 삭제 쿼리를 수행 Firs..
7.1 테스트 코드를 작성하는 이유 개발 과정에서 문제를 미리 발견할 수 있다. 리팩토링의 리스크가 줄어든다. 애플리케이션을 가동해서 직접 테스트하는 것보다 빠르게 테스트를 수행할 수 있다. 하나의 명세 문서로 활용할 수 있다. 불필요한 로직이 추가되는 것을 방지한다. 7.3 테스트 코드를 작성하는 방법 Given-When-Then Given: 테스트를 수행하기 전 테스트에 필요한 환경설정 When: 테스트의 목적을 명시 Then: 테스트의 결과를 검증 F.I.R.S.T Fast: 테스트는 빠르게 수행되어야 한다. Isolated: 하나의 테스트 코드는 하나의 대상에 대해서만 수행되어야 한다. Repeatable: 어떤 환경에서도 반복 가능해야 한다. Self-Validating: 테스트는 그 자체만으로..
6.2 ORM 객체 관계 매핑: 객체와 RBD 테이블을 자동으로 매핑 장점 ORM을 사용하면서 쿼리를 객체지향적으로 조작할 수 있다. 재사용 및 유지보수가 편리하다. 데이터베이스에 대한 종속성이 줄어든다. 단점 ORM만으로 온전한 서비스를 구현하기에는 한계가 있다. 애플리케이션 객체 관점과 데이터베이스 관계 관점의 불일치가 발생한다. 세분성: ORM의 자동 설계 바업에 따라 데이터베이스에 있는 테이블의 수와 애플리케이션의 엔티티 클래스의 수가 다른 경우가 발생한다. 식별성: RDBMS는 기본키로 동일성을 정의하지만 자바는 두 객체의 값이 같아도 다르다고 판단할 수 있다. 연관성: 객체지향 언어는 객체를 참조함으로서 연관성을 나타내지만 RDBMS에서는 외래키를 삽입함으로써 연관성을 표현한다. 또한 객체지향..
5.2 GET API 리소스 조회 RequestMapping GetMapping PostMapping PutMapping DeleteMapping PathVariable RequestParam @Tag(name = "GetController") @RestController @RequiredArgsConstructor @RequestMapping("/five/v1/") public class GetController { private final FiveService fiveService; @Operation(summary = "pathVariableExample") @GetMapping("/person/{name}") public ResponseEntity pathVariableExample(@Parame..
2.2 스프링 부트의 동작 방식 서블릿: 클라이언트의 요청을 처리하고 결과를 반환하는 자바 웹 프로그래밍 기술 서블릿 컨테이너: 서블릿 인스턴스를 생성하고 관리 서블릿 객체를 생성, 초기화, 호출, 종료하는 생명주기 관리 서블릿 객체는 싱글톤 패턴으로 관리 멀티 스레딩을 지원 스프링에서는 DispatcherServlet이 서블릿의 역할 수행 요청 FLOW DispatcherServlet으로 요청(HttpServletRequest)가 들어옴 DispatcherServlet이 핸들러 매핑을 통해 URI에 매핑된 핸들러(Controller)를 탐색 핸들러 어댑터로 컨트롤러 호출 핸들러 어댑터에 컨트롤러 응답이 돌아오면 ModelAndView 응답을 가공해 반환 뷰 형식으로 리턴하는 컨트롤러를 사용할 때에는 뷰..
1.1 스프링 프레임워크 오픈소스 경량급 애플리케이션 프레임워크 핵심가치: “애플리케이션 개발에 필요한 기반을 제공해서 개발자가 비즈니스 로직 구현에만 집중할 수 있게끔 하는 것” 1.1.1 제어 역전(IoC) 사용할 객체를 직접 제어하지 않고 객체의 생명주기를 외부(스프링 컨테이너)에 위임 클린코드 11장 시스템에서는 이를 시스템 제작(객체 생성과 의존성 연결)과 시스템 사용(런타임 로직)을 분리하라는 원칙으로 설명하고 있다. 이렇게해서 얻는 이점은 개발자가 관심사를 분리시킬 수 있으므로 비즈니스 로직에 더 집중할 수 있다는 점이다. 1.1.2 의존성 주입(DI) 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식 생성자를 통한 의존성 주입 필드 객체 선언을 통한 의..
처음으로 개인 프로젝트를 출시하게 되었습니다. 백엔드 엔지니어로 일하고 있지만 플러터에 관심이 생겨 공부를 하다가 프로젝트 출시까지 결심했습니다. 디자이너 여자친구와 함께 우리만의 제품을 만든다는 설렘을 느끼면서 개발을 한다는 건 정말로 행복하고 보람찬 일입니다. 약 3개월간의 "카드팡!" 개발기를 독자 여러분과 함께 공유드리고자 합니다. 카드팡! 소개 카드팡!은 플러터로 개발한 메모리 카드게임입니다. 심플한 게임 UI와 아기자기한 카드 디자인을 자랑하고 싶습니다. 현재는 안드로이드 기기에서만 플레이하실 수 있으나, 추후에 IOS로도 출시해볼 예정입니다. 카드 종류에는 색깔 타입, 숫자 타입, 이모지 타입이 있습니다. 레벨이 높아짐에 따라 더 기억하기 어려운 패턴으로 카드가 배치됩니다. 도전욕구가 불타오..