전체 글 122

DDD 그리고 헥사고날 아키텍처

DDD (Domain-Driven Design) 란?도메인 주도 설계의 약자로써, 각각의 도메인은 서로 철저히 분리하고, 높은 응집력과 낮은 결합도의 구조를 통해 변경과 확장에 용이하도록 설계 하는 것을 의미한다. DDD 를 구현할때는 위와 같이 크게 3가지 Layer로 구분하는 것이 핵심이다.1. Application Layer : 주로 도메인과 Repository를 바탕으로 실제 API를 제공하는 계층2. Domain Model Layer : Entity를 활용해 도메인 로직(비즈니스 로직)이 수행되는 계층3. Infrastructure Layer : 외부와 통신(RDBMS, Redis, HttpClient, ...)을 담당하는 계층 헥사고날 아키텍처사전적 의미로는 ”육각형 건축물”을 의미하며, ..

CS 2025.06.09

Webhook 이란

1. Webhook 이란?Webhook은 서버 간에 자동으로 실시간 데이터를 전달할 수 있게 해주는 웹 기술이다. 2. Webhook의 특징이벤트 기반Webhook은 서버에서 발생하는 특정 이벤트를 감지하고, 미리 지정된 엔드 포인트로 데이터를 전송한다. 실시간 데이터 전송요청 없이 서버가 클라이언트에게 실시간으로 데이터를 전송하는 방식으로, 실시간 알림이나 데이터 업데이트가 필요한 상황에서 유용한 방식이다. 경향화된 통신Webhook은 HTTP 프로토콜을 사용하여 POST 방식으로 데이터를 전송하는 경량화된 방식이다.데이터를 최소화하여 필요한 정보만을 전송하기 때문에, 빠르고 간단하게 서버간 통신을 할 수 있다. [ 참고 자료 ] 웹훅(Webhook)이란? (Feat. API)웹훅(Webhook..

CS 2025.05.12

Go_router 고급옵션 활용

Go_router를 보다 고급스럽게 사용하는 방법에 대해 알아보자다음은 Go_router 에서 제공하는 고급 옵션들이다.GoRouter( navigatorKey: navigatorKey, routes: router, initialLocation: '/splash', refreshListenable: //provider, observers: [GoRouterObserver(analyticsProvider: analytics_provider)], redirect: //redirectLogic,); 각각 살펴보자 1. NavigatorKey전역 네비게이션 키를 설정하는 옵션이다.앱의 어느 곳에서나 네비게이션을 제어할 수 있게 해준다.일반적으로 main.dart에 전역으로 nav..

Flutter 2025.05.08

Json 데이터를 직렬화 해주는 패키지 [ json_serializable ]

json_serializable | Dart packageAutomatically generate code for converting to and from JSON by annotating Dart classes.pub.dev 프로젝트가 커질수록, 각 모델 클래스에서 JSON 직렬화 및 역직렬화 코드를 작성하는 데 드는 시간이 많아진다. 특히, 필드가 많고 JSON 구조가 복잡한 경우 코드가 길어지기 때문에 유지보수가 힘들어질 수 있다. json_serializable은 이를 자동화하여 코드를 간결하고 일관성 있게 유지할 수 있게 해주는 역할을 한다. 간단한 모델로 예시를 들어보자.class ItemModel { String title; String description; ItemModel({ ..

Flutter 2025.05.08

Flutter로 간단한 게임 만들기 (Flame)

플러터의 게임엔진 Flame 으로 간단한 게임을 만들어 보자. flame | Flutter packageA minimalist Flutter game engine, provides a nice set of somewhat independent modules you can choose from.pub.dev 1. Preparation — FlameBefore you begin any kind of game project, you need an idea of what you want to make and I like to then give it a name. For this tutorial and game, Ember will be on a quest to gather as many (GitHub) sta..

Flutter 2025.03.26

[VSCode] Live Server 사용하기

Live Server 란?Live Server는 로컬 서버를 실행하고, HTML 파일을 브라우저에서 실시간으로 미리보게 해주는 VsCode의 확장 프로그램이다. Live Server는 로컬 서버를 실행하여 HTML, CSS, JavaScript 등의 동적 파일을 로드함. 이 방식은 실제 서버 환경과 유사하게 동작하게끔 하며, 드 수정 후 자동으로 새로 고침되기 때문에, 수정한 내용을 즉시 확인할 수 있어. index.html 파일 수정 후 매번 브라우저를 새로 고침할 필요가 없다. 또한 JavaScript로 만든 동적 페이지나 AJAX 요청, CORS와 관련된 문제들이 서버 환경에서 해결되므로, 더 복잡한 웹 기능을 테스트하고 실행할 수 있다.. 고 한다. 1. Live Server 설치법VsCode의 ..

Flutter 2025.03.19

Flutter 이주의 위젯 탐방 (5) - FadeInImage, StreamBuilder, InheritedModel

플러터 공식 유튜브엔, 플러터에 관한 여러가지 정보들이 있다. Flutter Widget of the WeekFighting the good fight for Widget Awareness! Widget of the Week is a series of quick, animated videos, each of which covers a particular widget from the Flu...www.youtube.com이중, 이주의 위젯 카테고리에는 여러 새로운 위젯들이 있는데, 이들을 탐방해 보고자 한다!** 정리 순서 - 간단한 설명, 사용법, 관련공식문서링크** 볼때마다 추가 예정 (옛날것부터 정리할 예정) FadeInImage이미지가 로드되는동안 placeholder 이미지를 보여주고, 이미지가 ..

CS 연습문제 (3)

[ 질문 리스트 ]15. 애니메이션 속성 중 curve 와 duration 에 대해 설명하세요.16. 암시적 애니메이션과 명시적 애니메이션의 차이는 무엇인가요?17. Flutter에서 스로틀링은 무엇인가요? 예를 들어 설명하세요.18. Flutter에서 디바운싱은 무엇인가요? 예를 들어 설명하세요.19. Flutter에서 무한 스크롤을 구현하는 방법은 무엇인가요?20. Flutter에서 당겨서 새로고침 기능을 구현하는 방법은 무엇인가요?21. 디자이너와의 협업 과정에서 테마 커스터마이징은 활용한 적이 있나요? 있다면 예시를 들어 설명하세요.22. Flutter에서 네이티브 기능과 연결하기 위해 패키지를 사용한 경험이 있나요? 있다면 예시를 들어 설명하세요.23. StatefulWidget의 생명주기에 대..

CS 2025.02.24

CS 연습문제 (2)

[ 질문 리스트 ]8. MVVM 패턴의 특징과 장점은 무엇인가요?9. MVVM 패턴과 StatefulWidget의 차이점을 설명하세요.10. 위젯이 화면에 그려지기까지의 과정을 설명해보세요.11. Flutter에서 위젯트리란 무엇인가요?12. Flutter에서 BuildContext 란 무엇인지 예시를 들어 설명해보세요.13. 소프트웨어 아키텍처 패턴의 종류중 MVVM 말고도, MVC, MVI 가 있는데, 각각의 특징과 장단점은 무엇인가요?14. static, const, final의 차이는 무엇인가요?       [ 답변 리스트 ]8. MVVM 패턴의 특징과 장점은 무엇인가요?  MVVM 패턴의 특징은, 로직을 모델(Model), 뷰(View), 뷰모델(ViewModel)로 나누어 다룬다는 것으로,모델..

CS 2025.02.20