전체 글131 객체지향 프로그래밍이란 알고 있지만 막상 설명할 수 없는 기본 개념을 정리하기 위해 포스팅을 하게 되었다. 📌 객체지향 프로그래밍 :: OOP 객체지향 프로그래밍(Object-Oriented Programming)은 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 그 객체들 간 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. * 객체 : 현실에 무언가를 추상적으로 표현한 것 📌 OOP의 특징 1. 추상화 클래스들의 공통적인 특성(변수, 메서드)들을 묶어서 표현하는 것 2. 캡슐화 데이터 구조와 데이터를 다루는 방법들을 하나의 캡슐 형태로 결합시켜 데이터와 코드의 형태를 외부로부터 알 수 없게 하는 것 3. 상속 상위 요소의 특징을 하위 요소가 물려받는 것 4. 다형성 하나의 변수명, .. 2023. 5. 11. GitHub Action이란 개발 프로세스의 핵심은 자동화이다. CI/CD는 메인 리포지토리에 새롭게 추가되는 기능들을 CI서버에서 자동으로 빌드하고 테스트해서 지속적으로 배포하는 것을 말한다. CI/CD에서도 핵심포인트는 바로 자동화이다. 버전관리 시스템으로 가장 많이 쓰이는 Git과 Git을 배포할 수 있는 GitHub가 있는데 이것을 자동화를 이용하려면 예전에는 Jenkins, BuildKite, circleci와 같은 외부 툴들을 사용했어야 했다. 하지만 이제는 GitHub Action을 통해 별도의 외부 툴 없이 자동화 프로세스를 만들 수 있다. 어떻게 GitHub Action을 통해서 CI/CD를 구축할 수 있는지 알아보기위해 포스팅 하게 되었다. 📌 GitHub Action이란? 깃허브 액션은 크게 Events, Wor.. 2023. 5. 9. CI(지속적통합) CD(지속적제공, 지속적배포)란 📌 CI / CD 란? 애플리케이션 개발 단계에서 배포 단계까지 모든 단계를 자동화해서 조금 더 효율적이고 빠르게 사용자에게 빈번히 배포할 수 있도록 만드는 것을 의미한다. 📌 CI (Continuous Integration :: 지속적 통합) CI는 지속적 통합이라는 뜻으로 개발을 진행하면서도 품질을 관리할 수 있도록 여러 명이 하나의 코드에 대해서 수정을 진행해도 지속적으로 통합하면서 관리할 수 있음을 의미한다. 지속적 통합 = 버그 수정이나 새로 만드는 기능들이 메인 리포지토리에 주기적으로 빌드되고 테스트 되어서 병합(merge) 되는 것 CI는 두가지 포인트로 잡고 생각하면 좋다. 1. 개발자들은 그들의 코드 변경사항을 메인 리포지토리에 주기적으로 빈번하게 병합(merge)해야 한다. 동일한 소스.. 2023. 5. 9. [Spring Boot + JPA] API 개발과 성능 최적화 - 2. 지연 로딩과 조회 성능 최적화 📌 간단한 주문 조회 V1: 엔티티를 직접 노출 먼저 엔티티를 직접 반환하는 것은 좋지 않다. 여기서는 예제만을 위해 엔티티를 직접 노출하는 소스를 작성했다. OrderSimpleApiController 생성 @RestController @RequiredArgsConstructor public class OrderSimpleApiController { private final OrderRepository orderRepository; @GetMapping("/api/v1/sample-orders") public List orderV1() { List all = orderRepository.findAllByString(new OrderSearch()); return all; } } 해당 API를 호출하면 .. 2023. 5. 1. [Spring Boot + JPA] API 개발과 성능 최적화 - 1. API 개발 기본 📌 회원 등록 API 엔티티 자체를 request 받는 saveMemberV1 코드 @RestController @RequiredArgsConstructor public class MemberApiController { private final MemberService memberService; @PostMapping("/api/v1/members") public CreateMemberResponse saveMemberV1(@RequestBody @Valid Member member) { Long id = memberService.join(member); return new CreateMemberResponse(id); } @Data static class CreateMemberResponse { pri.. 2023. 5. 1. DTO vs VO 그리고 Entity와 DTO를 분리하는 이유 DTO와 VO를 당연 시 사용했지만 막상 DTO와 VO의 차이에 대해 뚜렷하게 설명할 수 없었고 이번 포스팅을 통해 정리해보려고 한다. 먼저, DTO와 VO는 전혀 다른 용도의 객체이다. 📌 VO 란? VO는 Value Object로 값 그 자체를 표현하는 객체이다. VO는 객체의 참조값이 다르더라도 값이 같다면 동일한 것으로 봐야한다. 예를 들어 서로 고유번호가 다른 10000원 지폐가 2장이 있다고 할 때, 10000원 지폐의 고유 번호가 서로 다르다고 해서 다른 10000원 이라고 하지 않고 똑같은 10000원이라 한다. 이처럼 값으로만 비교되는 객체를 VO라고 한다. 📌 VO의 특징. Read-Only속성을 가진다. 값 자체를 표현하기 때문에 불변 객체여야한다. 불변성이 보장되어야 하기 때문에 s.. 2023. 4. 26. 이전 1 ··· 14 15 16 17 18 19 20 ··· 22 다음