전체 글

꾸준히 성장하는 개발자 WONOW 입니다. 🤗
· TIL
과제 제출을 위해서 프로젝트 EC2에 배포 후 오늘 접속을 하니 애플리케이션 서버가 꺼져있었다.그래서 뭘까하고 문제점을 계속 찾았다. 내가 서버를 구동하는 상태는 이랬었다. EC2 내에 Docker를 설치해서 Docker에 MySQL 설치 후 사용Spring은 Docker가 아닌 EC2에서 사용환경변수를 파일 형식이 아닌, 일회성 등록 (export)음,, 일회성 등록은 현재 터미널 세션을 끄면 자동으로 사라지나? 하고 파일 형식으로 등록해서 영구적으로 등록했다. 그래도 실패 그러면 예상가는 것은 딱하나 램이다. EC2를 프리티어로 사용하면 1GB의 램 사용 용량을 제공한다. 너무 부족하다 적어도 2GB는 돼야하지 않을까?근데 2GB를 제공해주는 Small 인스턴스는 프리티어가 아니라서 과제 제출용으로 ..
· TIL
Union Find 의미Union Find는 Union + Find 를 합친 알고리즘이다.그러므로 두 단어의 알고리즘적 의미를 알아야한다. UnionUnion은 합집합을 뜻한다.1 ∈ A2 ∈ B일 때A ∪ B = {1, 2} 가 된다. FindFind는 집합의 대표 노드를 반환하는 연산을 의미한다.노드 a가 a ∈ A 일 때 find(a) 는 A집합의 대표 노드를 반환한다.  Union Find 원리 설명 1. 1차원 배열 이용 및 자기 자신 대표 노드로 초기화유니온 파인드를 표현하는 일반적인 방법은 1차원 배열을 이용해서 표현한다.배열을 처음 초기화 할 때는 union 연산을 따로 진행하지 않으므로 자기 자신의 대표 노드를 자신의 인덱스로 초기화한다. int nodes = 5;int[] parent ..
· TIL
값 객체에 대해서 29cm 기술 블로그에서 본 적 있다.그때는 유효성 검증 등 한 곳에서 처리할 수 있구나~~~ 만 알고 넘어갔었다.그리고 한 메서드에 대해 오버로딩을 하면서 long 타입 값을 BrandId, StoreId 등으로 래핑하면서 이게 값 객체인가? 생각했던 적이 있다.근데 이번에 DDD를 공부하면서 값 객체가 나왔다... 내가 진짜 조금만 알고 있었구나... 싶었다.한 번 제대로 알아보자 !값 객체 (Value Object)프로그래밍 언어에는 원시 데이터 타입이 있다. int, boolean 등등.. 이 원시 데이터 타입만을 사용하여 개발을 할 수 있지만, 시스템 특유의 값을 정의해야 할 때가 있다. 이때 정의하는 객체를 값 객체라고 한다. 이름으로 예를 들었을 때String fullNam..
· TIL
도메인 주도 설계소프트웨어 개발자는 개발만 아는 것이 아닌, 도메인에 대해서 이해를 해야한다. 예를 들어서 물류 시스템을 개발한다면 운송, 배송 과정 등을 배워야한다.개발자는 소프트웨어 사용자에 대해서 이해를 해야한다는 것이다. 물류 시스템을 개발하기 위해서 배송 과정, 연료 등의 정보는 아주 귀중한 정보다.하지만 트럭이 어떻게 움직이는지, 트럭이 무슨 색인지 등의 정보는 가치가 없다.지식을 취사선택 해야한다는 것이다. 도메인 주도 설계는 이러한 고찰을 반복하는 설계를 통해, 이용자의 세계와 소프트웨어 구현을 연결하는 것이 목적이다. 도메인소프트웨어 개발에서 도메인은 프로그램이 쓰이는 대상 분야를 의미한다.더 중요한 것은 도메인에 무엇이 포함되어있는 것인가다. 물류 시스템을 예로 들면 창고, 운송 수단,..
· 기타
프로그래밍 패러다임 중 하나인 객체지향 그 중에서 자바 언어를 사용하며 깨닫고 있는 게 있다.객체지향은 아주 강한 약속이다. 객체지향적으로 잘 접근한 코드들은 부연설명 없이 코드만 읽어도 다 이해가 된다. 그 중 가장 큰 역할을 하는 게 인터페이스라고 생각한다. 인터페이스 기반의 개발은 구현 클래스를 직접 참조하지 않고 상위 인터페이스를 선언하여 다형성을 이용해 프로그래밍 하는 방법이다. 인터페이스 기반의 개발을 하지 않으면 의존성을 다른 구현체로 바꿨을 때 의존 클래스까지 모두 변경해야한다.변경에 유연하게 대처하기 어렵고, 유지보수성이 상당히 낮아진다. 인터페이스 기반의 개발을 하면 구현체의 변경사항이 생겨도 코드의 변화가 적다.다중 상속이 가능해 인터페이스 개발이 자유롭다.코드의 재사용성이 높아진다...
현재 프로젝트에서 PostConstruct를 이용해서 Spring 이 실행될때 Member 권한을 자동으로 DB에 등록해주는 기능을 개발하고 있었다. @Component@RequiredArgsConstructorpublic class MemberRoleInitializer { private final MemberRoleRepository memberRoleRepository; @PostConstruct public void init() { for (MemberRoleEnum memberRoleEnum : MemberRoleEnum.values()) { memberRoleRepository.findByName(memberRoleEnum).orElseGet( ..
wonow_
wonow_