
디자인 패턴 - MVC, MVVM 패턴
MVC 패턴 드디어 익숙한 거 나왔다. MVC 패턴은 Model, View, Controller 세가지로 이루어진 디자인 패턴으로, 애플리케이션의 구성 요소를 이 세 가지 역할로 구분하는 방식이다. 이렇게 구분하면 개발 프로세스에서 각각의 구성 요소에만 집중하여 개발이 가능해진다. 모델 모델은 애플리케이션의 데이터인 데이터베이스와 상수 및 변...
MVC 패턴 드디어 익숙한 거 나왔다. MVC 패턴은 Model, View, Controller 세가지로 이루어진 디자인 패턴으로, 애플리케이션의 구성 요소를 이 세 가지 역할로 구분하는 방식이다. 이렇게 구분하면 개발 프로세스에서 각각의 구성 요소에만 집중하여 개발이 가능해진다. 모델 모델은 애플리케이션의 데이터인 데이터베이스와 상수 및 변...
옵저버 패턴 주제가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 패턴이다. 여기서 말하는 주제란, 객체의 상태 변화를 보고 있는 관찰자이며, 옵저버는 이 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 추가적인 변화 사항들이 생기는 객체들이다. 때로는 주제와 객...
디자인 패턴 디자인 패턴이란, 프로그램 설계에서 자주 발생하는 문제를 해결하기 위한 일반적인 솔루션을 제공한다. 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 ‘규약’형태로 만들어 놓은 것이 곧 디자인 패턴이다. 객체지향적 디자인 패턴의 카테고리는 크게 ‘생성 패턴’, ‘구조 패턴’, ‘행동 패턴’으로 구분된다. 생성 패턴 ...
환경변수 때로는 로컬 개발 환경과 프로덕션 환경에서 다른 데이터베이스에 접근을 해야 하는 경우가 생기며, 키, 포팅이나 URL등도 환경에 따라 변동될 수 있다. Github을 사용할 때는 특히 이러한 환경변수가 포함된 .env 파일을 보안상의 이유로 직접 업로드하지 않는 것이 일반적이다. 그런데 Github Actions는 워크플로를 Github에...
의존관계 서비스의 인스턴스를 만들 때, 해당 서비스는 일반적으로 여러 인스턴스를 만들 필요가 없다. @Controller, @Service, @Repository등과 같은 데코레이터를 사용해서 스프링 컨테이너에 해당 클래스들을 등록할 수 있다. @Autowired를 생성자에 달아주면 필요한 의존성들을 주입시켜준다. 이러한 방식이 컴포넌트 스캔 방식...
스프링 입문 자바 스프링을 공부해보면 사고의 폭을 넓힐 수 있다는 동료의 추천에 도전해보기로 했다. 일단 당장 Node.js 기반의 프레임워크밖에 사용을 해본 경험이 없기 때문에, 별도의 언어와 프레임워크를 학습하는 경험을 가져가면, 자바-스프링뿐만이 아니더라도 다른 스택을 요구하는 상황에 놓일 때 더욱 원활하게 터득하여 사용할 수 있을 것이라는 생...
C++ C++는 C 언어의 기본 문법을 기반으로 하여 일부 기능을 확장한 프로그래밍 언어이다. 주요 확장 내용으로는 객체 지향 프로그래밍에 필요한 클래스, 상속, 동적 바인딩과 같은 기능이 있으며, C++는 템플릿과 예외 처리 기능도 제공하여 코드의 재사용성과 오류 관리가 용이하다. C++ 프로그램의 작성 및 빌드 크게 두가지 유형의 소스 파일이...
CI/CD CI/CD란 Continuous Integration과 Continuous Deployment의 약자이며, 이는 지속적 통합과 지속적 배포를 의미한다. 지속적 통합은 개발자가 코드를 병합할 때 자동으로 빌드와 테스트 등을 실행하도록 하여 코드의 품질을 보장하는 기술이다. 이러한 테스트나 빌드를 자동화함으로 작은 변경사항을 빠르게 검증할 ...
완성 오늘 성준님이 프론트엔드 UI부분을 마저 마무리해줌으로 드디어 완성이다. 약간의 놓친 부분들이 있을 수도 있겠다는 생각은 들지만, 꽤 만족한다. SQL, typescript, typeORM, tsyringe 등등 새로 배운 것들을 사용했으며, 아키텍쳐를 지난 프로젝트보다 짜임새있게 짰다고 생각한다. 마지막에 성준님이랑 맞춰볼 때, 루틴 수정...
문제점 기본적인 구현 자체는 모두 완료되었다. 단순한 회원가입 및 로그인부터, 루틴 등록 및 조회, 댓글, 제품 구매까지 처음에 기획했던 모든 요소들이 One-Flow로 작동한다. 그러나, 처음에 데이터베이스의 설계가 미흡했던 부분들이 기능들을 추가하는 데에 어려움을 준다. 우선, 현재 서비스의 알파이자 오메가는 ‘루틴’이다. 이 루틴에 각 단계...