본문 바로가기
반응형
[Flutter] BloC & MVVM 구현 - Stream과 yield에 대해 (Feat. Kotlin Android) Flutter에서 자주 쓰이는 아키텍쳐 패턴으로 BloC 패턴이 있습니다.Flutter는 상태에 따라 렌더링이 일어나기 때문에 상태 관리가 매우 중요하며, 이 상태 관리를 제어하기 위해 Google 개발자에 의해 BloC 패턴이 만들어졌습니다.Bloc makes it easy to separate presentation from business logic, making your code fast, easy to test, and reusable. 비즈니스 로직과 UI를 분리하기 위한 수단으로, BloC 패턴을 활용한 MVVM 패턴 구현에 대해 글로 작성해보겠습니다.Kotlin / Java 안드로이드에 대한 경험이 있으신 분들은 설명에 더 이해가 되실 수 있도록 추가적인 첨언을 붙이겠습니다.  BloC 패.. 2024. 6. 26.
AWS Swap memory 활용으로 메모리 부족 해결하기 대부분의 많은 분들이, 프로젝트 초반 구축에 있어서 AWS EC2 프리티어를 사용합니다.프리티어의 인스턴스는 t2.micro 타입이며, 램이 1GB 유형을 갖고 있기 때문에 EC2 인스턴스에서 서버 하나를 띄우고, AWS RDS 사용 대신에 데이터베이스 서버까지 함께 EC2에 띄운다면메모리 부족 현상이 발생할 수 있습니다. 메모리 부족 현상으로 인해 서버가 다운되거나 인스턴스가 다운될 수 있습니다.프로젝트 초반 운영에서는 한정적인 자원으로 운영할 필요가 있기 때문에, 프리티어를 포기하기도 리소스적으로 애매합니다.   이럴 땐 swap memory 할당을 활용하면 됩니다.EC2의 디스크 용량을 이용해서 부족한 메모리를 대체하는 공간을 swap memory 라고 합니다.이번 글에서는 리눅스에서 swap fi.. 2024. 6. 19.
내가 두고두고 쓰는 Docker 설정들 총 정리 (EC2 & NginX & SpringBoot & MySQL) Kotlin SpringBoot 백엔드를 개발하고 있습니다.이제 EC2에 배포하기 위해서 프리티어 계정을 생성하였고, EC2를 생성했습니다. EC2 생성 시 Amazon Linux 2 를 사용했고, 프리티어는 30GB 볼륨까지 사용할 수 있으므로 그렇게 지정해줍니다.Nginx가 80 포트로 다뤄질 것이므로, 인바운드 규칙으로 80포트도 열어줍니다.  원래는 Docker를 활용함에 있어서, SpringBoot 서버 jar 파일을 image 화 시킨 뒤에, Docker Hub에 올려주고EC2에서 이 Docker Hub에 접속해야 하는데, Docker Hub는 Private 저장소를 사용하려면 유료 요금을 지불해야 합니다. 또한 git 역시 저는 private repository로 진행하고 있기 때문에, sc.. 2024. 4. 10.
게시글 읽어올 때, 좋아요 수랑 댓글 수를 어떻게 처리할 것인가? 서비스를 처음 운영할 때에는, 프론트와 백을 모두 개발해야 하기 때문에,, 보통 비용 감소를 위해 서버리스를 많이 도입하고 있지만 (고정 비용도 나가지 않아서 좋음) 최근에 개발중인 서비스는 백엔드까지 개발하고 있습니다. 한정된 AWS 프리티어로 초반을 유지해야 하기 때문에, 쿼리 최적화도 당연히 필수적으로 생각해보게 되었습니다. Post - Comment 는 1 : N 관계이고 Post - UserLike 또한 1 : N 관계이며 Post - UserDownload 또한 1 : N 관계입니다. JPQL을 이용한 Fetch Join 쿼리를 작성하던, EntityGraph를 이용하던, QueryDSL을 이용하던 OneToMany 여러개의 Fetch Join은 메모리와 성능상 이슈가 존재합니다. Fetch .. 2024. 4. 10.
반응형