본문 바로가기
반응형

전체 글154

3. 역할, 책임, 협력 - 1 오브젝트 책(챕터3: 역할, 책임, 협력) 목차 협력 영화 예매 시스템 돌아보기 협력 협력이 설계를 위한 문맥을 결정한다. 챕터3 역할, 책임, 협력에서 협력에 대해 다루려고 합니다. 객체지향 패러다임 관점에서 핵심은 역할(role), 책임(responsibility), 협력(collaboration)이다. 객체지향의 본질은 협력하는 객체들의 공동체를 창조하는 것이다. 객체지향 설계의 핵심은 협력을 구성하기 적절한 객체를 찾고 적절한 책임을 할당하는 과정에서 드러난다. 어플리케이션의 기능을 구현하기 위해 1.어떤 협력이 필요하고 2.협력을 위해 어떤 역할과 책임이 필요한지 먼저 고민 구현부터 초점을 맞추면 변경하기 어렵고 유연하지 못한 코드를 낳는 원인이 된다. 역할, 책임, 협력이 제자리를 찾지 못하면.. 2022. 10. 14.
2. 객체지향 프로그래밍 진정한 객체지향 패러다임으로의 전환은 객체에 초점을 맞출 때 얻을 수 있다 클래스가 아니다. 객체지향 프로그래밍을 할 때 집중해야할 두가지 1. 어떤 클래스가 필요한지 고민하기 전에 어떤 객체들이 필요한지 고민하라 (클래스는 공통적인 상태와 행동을 공유하는 객체들을 추상화한 것) → 시나리오를 만들자 2. 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 봐야 한다. 2-1. 객체들의 모양과 윤곽 잡기 2-2. 공통된 특성과 상태를 가진 객체들을 타입으로 분류하기 2-3. 이 타입을 기반으로 클래스를 구현하기 도메인: 문제를 해결하기 위해 사용자가 프로그램을 사용하는 분야 소프트웨어는 사용자가 원하는 어떤 문제를 해결하기 위해 만들어진다. 객체지향 패러다임이 강력한 이유 : .. 2022. 10. 14.
1. 객체, 설계 오브젝트 책과 코드스피츠 오브젝트 강의에 대한 내용입니다. 내용: 책 1장 객체, 설계 코드스피츠 오브젝트강의 1강 핵심: 역할 모델에 따른 로직의 격리, 프로그래밍의 격리 목적: 역할 모델에 따른 설계의 경지에 도달 역할 모델을 이해하기 위해 Abstraction(추상화)에 대해 이해해야함 Generalization : 일반화 - modeling, function, algorithm Association : 연관화 - reference, dependence Aggregation : 집단화 - group, category 코드스피트 오브젝트강의 1강: https://www.youtube.com/watch?v=sWyZUzQW3IM&list=PLBNdLLaRx_rI-UsVIGeWX_iv-e8cxpLxS 2022. 10. 14.
오브젝트 오브젝트 책에 대한 내용을 작성해보려고 합니다. - 객체지향이란 객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작합니다. 두번째 걸음은 객체를 독립적인 존재가 아니라 기능을 위해 협력하는 공동체의 존재로 바라보는 것입니다. 세번째는 "협력에 참여하는 객체들에게 얼마나 적절한 책임을 부여할 수 있는가"입니다. 마지막 걸음은 앞에서 설명한 개념들을 여러분이 사용하는 프로그래밍 언어라는 틀에 흐트럼 없이 담아낼 수 있는 기술을 익히는 것 입니다. 2022. 10. 14.
String 배열안에 원소별로 정렬하기[Java] 원소별로 정렬하는 메소드 : private static String[] sortValues(String[] arr) public class Main { public static void main(String[] args) { String[] arr = {"ecfagdb", "dqsdmqa", "bdadqc"}; System.out.print("정렬 전 원소별 순서: "); for (String s : arr) { System.out.print(s + " "); } System.out.println(); System.out.print("정렬 후 원소별 순서: "); String[] answer = sortValues(arr); for (String s : answer) { System.out.print(s.. 2022. 10. 4.
Spring Batch - Spring Batch는 확장성과 다양한 end-user 개발자를 위한 것 - Spring에서 가져온 Spring Batch 자료 https://docs.spring.io/spring-batch/docs/current/reference/html/spring-batch-intro.html#spring-batch-intro Spring Batch Introduction Many applications within the enterprise domain require bulk processing to perform business operations in mission critical environments. These business operations include: Automated, complex .. 2022. 9. 30.
🌎 도커(Docker) 개념: Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼 장점: 많은 소프트웨어를 빨리 제공 작은 컨테이너로 어플리케이션을 사용함으로 쉽게 배포 가능, 문제 파악 가능, 수정을 위한 롤백 가능 활용: 마이크로서비스: 컨테이너를 통한 표준화된 코드 배포를 활용함으로 분산 애플리케이션 아키텍처 구축, 확장 가능 지속적인 통합 및 전달: 환경을 표준화하고 언어 스택 및 버전 간의 충돌을 제거함으로 애플리케이션을 빠르게 제공 가능 작동방식 도커는 컨테이너를 위한 운영체제 컨테이너는 서버 운영체제를 가상화함 (↔ 가상머신은 서버 하드웨어를 가상화함) 도커는 각 서버에 설치됨. 명령어 이미지 목록 확인: docker images 이미지 검색: docker search [이미지.. 2022. 9. 15.
🍕Spring Data JPA와 JPQL에 대해서 Spring Data JPA를 사용하여 Repository를 만들면 쉽게 Repository를 만들 수 있을 뿐만 아니라 Repository가 간결해진다. Service에서 Repository로 가지 않아도 Service에서 DB접근을 하여 처리를 해줄 수 있다. 이러한 편리함에 Spring Data JPA를 바로 접하면 JPQL 공부를 하지 않고 Spring Data JPA로 바로 넘어갈 수도 있다. 그런데 그렇게 되면 나중에 문제가 생길 수도 있다. Spring Data JPA로 해결이 안되는 이슈가 생길 수도 있기 때문이다. JPQL을 편리하게 사용할 수 있도록 만든 것이 Spring Data JPA이다. 따라서 JPQL을 공부하면 Spring Data JPA 사용은 자동으로 따라온다. 처음에 JP.. 2022. 8. 25.

반응형
반응형