본문 바로가기

분류 전체보기128

오브젝트 02 - 객체지향 프로그래밍 오브젝트 02 - 객체지향 프로그래밍 2.1 영화 예매 시스템 - 영화, 상영, 할인 정책, 할인 조건이 있는 영화 예매 시스템이 존재한다. 2.2 객체지향 프로그래밍을 향해 2.2.1 협력, 객체, 클래스 진정한 객체지향 패러다임으로의 전환은 클래스가 아닌 객체에 초점을 맞출 때에만 얻을 수 있다. 이를 위해서는 아래의 두 가지에 집중해야 한다. 어떤 클래스가 필요한지를 고민하기 전에 어떤 객체들이 필요한지 고민하라. 클래스는 공통적인 상태와 행동을 공유하는 객체들을 추상화한 것이다. 따라서 클래스의 윤곽을 잡기 위해서는 어떤 객체들이 어떤 상태와 행동을 가지는지를 먼저 결정해야 한다. 객체를 중심에 두는 접근 방법은 설계를 단순하고 깔끔하게 만든다. 객체를 독립적인 존재가 아니라 기능을 구현하기 위해.. 2024. 2. 6.
오브젝트 01 - 객체, 설계 오브젝트 01 - 객체, 설계 1.1 티켓 판매 애플리케이션 구현하기 조건 초대장을 가진 사람은 티켓으로 교환 후 입장 가능 일반 입장객은 티켓을 구매 후 입장 가능 간단하고 예상대로 동작하지만 몇가지 문제점이 있는 프로그래밍 public class Theater { private TicketSeller ticketSeller; public Theater(TicketSeller ticketSeller){ this .ticketSeller = ticketSeller; } public void enter(Audience audience) { if (audience.getBag().hasinvitation()) { Ticket ticket = ticketSeller.getTicketOffice().getTic.. 2024. 2. 6.
[EC2 / linux] springboot 배포 오류 : Failed to start bean 'webServerStartStop, java.net.SocketException: Permission denied [EC2 / linux] springboot 배포 오류 : Failed to start bean 'webServerStartStop, java.net.SocketException: Permission denied 기존 개발 서버 포트를 8080으로 사용하고 있었는데, ssl을 붙여주려고 포트를 80으로 변경하고 AWS EC2 code deploy를 진행했다. 근데 에러가 쫙 나면서 배포가 자꾸 안됨.. 그래서 찾아보니, 1024 이하의 port는 sudo(root)의 권한이 필요하다고 하는데, code deploy로 배포할 경우 ubuntu 권한으로 배포가 되기 때문에 배포에 권한이 없어서 아래와 같은 에러를 뱉으며 실패하게 된다. 2023-03-03 21:35:56.443 DEBUG 20106 --- .. 2023. 3. 3.
[데이터 중심 애플리케이션 설계] 12. 데이터 시스템의 미래 [데이터 중심 애플리케이션 설계] 12. 데이터 시스템의 미래 데이터 시스템은 미래에 어떻게 되어야 할까? 신뢰할 수 있고 확장 가능하며 유지보수하기 쉽게 만드는 데이터 시스템의 미래를 고찰해보자. 1. 데이터 통합 1.1 파생 데이터에 특화된 도구의 결합 1.1.1 데이터플로에 대한 추론 같은 데이터의 사본을 여러 저장소 시스템에 유지해야 할 때 입력과 출력을 분명히 해야한다. 어디서 데이터를 처음으로 기록하는지, 어떤 표현형이 어떤 원본에서 파생되는지, 데이터를 모두 올바른 장소로 올바른 형식으로 어떻게 넣는지 등에 대해 충분히 고려해야 한다. 파생 데이터 시스템은 이벤트 로그를 기반으로 갱신하면 결정적이고 멱등성을 지녀 결함에서 복구하기가 상당히 쉬워진다. 1.1.2 파생 데이터 대 분산 트랜잭션 .. 2023. 2. 15.
[데이터 중심 애플리케이션 설계] 11. 스트림 처리 [데이터 중심 애플리케이션 설계] 11. 스트림 처리 1. 이벤트 스트림 전송 이벤트 특정 시점에 일어난 사건에 대한 세부 사항을 포함 일반적으로 일기준 시계를 따르는 타임스탬프 포함 이벤트의 부호화, 저장, 전송 텍스트 문자열이나 JSON 또는 이진 형태 등으로 부호화 가능 파일 및 관계형 테이블에 삽입 및 문서 데이터베이스로 기록하거나 저장 가능 다른 노드에서 처리하게끔 네트워트를 통해 전송 가능 생산자와 소비자 생산자(producer = publisher) : 이벤트를 만든다. 소비자(consumer = subscriber) : 이벤트를 처리한다. 스트림 시스템에서는 토픽(topic)이나 스트림으로 관련 이벤트를 묶는다. 1.1 메시징 시스템 메시징 시스템은 새로운 이벤트에 대해 소비자에게 알려준다.. 2023. 2. 11.
[Spring boot] swagger 에러 - Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException [Spring boot] swagger 에러 Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException implementation("io.springfox:springfox-boot-starter:3.0.0") Spring boot 2.7.8 버전에 swagger 3.0.0 버전을 붙이고 실행을 시켰는데 아래와 같은 에러가 발생했다. Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException 해당 에러는 Spring boot 2.6버전 이후.. 2023. 2. 2.
728x90
반응형