• 안드로이드 주니어 개발자의 클린아키텍처 도입기 (1)

    안녕하세요! 팀 호남향우회의 프론트엔드 개발을 맡고 있는 포케입니다. 처음 구조를 정하지 않고 프로젝트를 시작하게 되면 어느새 늘어나 있는 코드들과 건들기 어려운 상황을 볼 수 있습니다. 저희 팀은 초기부터 운영을 목표로 프로젝트를 진행했기 때문에 유지보수성과 확장성을 위하여 구조를 확실하게 정하고 가야 한다고 생각하였습니다. 저희 프론트엔드팀은 클린 아키텍처 + MVI 패턴을 결합한...

  • 에그로그 서비스에 배치 서버가 필요한 이유

    안녕하세요. 에그로그 프로젝트의 백엔드 팀에서 ICS 캘린더 시스템 개발을 맡고 있는 피칸파이 입니다. 현재 에그로그 서비스의 캘린더 시스템에서는 외부 캘린더 데이터 내보내기 및 가져오기 위해 스프링 스케줄러를 활용해서 캘린더 데이터를 동기화를 하고 있습니다. 이 기능으로 사용자는 ICS 형식을 지원하는 타사 캘린더 앱과의 연동성 높아져 유저 편의성이 향상되었습니다. 하지만, 현재 메인...

  • Jetpack Compose를 선택한 이유

    안녕하세요. 호남향우회에서 프론트엔드 개발을 맡고 있는 모밀입니다. 저희 프론트엔드 팀에서는 UI를 구현하기 위해 전통적으로 사용되는 XML 레이아웃 파일 대신 Jetpack Compose를 선택하였는데요! 오늘은 그 이유에 대해 설명하고자 합니다. Jetpack Compose? 들어가기 앞서, Jetpack Compose에 대해 설명드리겠습니다. Jetpack Compose는 Google에서 개발한 최신 UI 툴킷으로, Android 앱의 UI를 더 간편하게, 더 효율적으로...

  • 게시판 금칙어 필터링 하기

    게시판 금칙어 필터링 안녕하세요 호남향우회에서 백엔드를 맡은 아샷추입니다. 저는 게시판 기능을 담당했습니다. 고도화 방안을 생각하던 중에 게시판은 여러 사용자가 사용하는 공간이다보니 금칙어 관리가 필요하다고 생각했습니다. 어떤 로직으로 구성되어 있는지 살펴볼까요? BanWords interface public interface BanWords { String[] banWords = { "나쁜말", "안좋은말" }; } 금칙어를 배열로 담아놓습니다. BanWordFilter class public...

  • React Native에서 Kotlin으로 기술을 변경한 이유

    1. 들어가기 앞서 안녕하세요! 팀 호남향우회에서 Native 및 FrontEnd 개발을 맡고 있는 버블티입니다. 들어가기 앞서 간단하게 ‘에그로그’ 모바일 앱 서비스를 만들며 알아보았던 내용들에 대해 설명하고자 합니다. 최근, 모바일 앱이 신흥 플랫폼으로 자리잡음에 따라 다양한 기업들과 개발자들은 모바일 앱에 관심을 가지고 있습니다. 때문에, 크로스 플랫폼인 React Native와 Flutter, 네이티브 앱인 Kotlin,...

  • 에그로그 인프라 구축기 (1)

    안녕하세요 호남향우회에서 인프라 구현을 맡은 바크콜입니다. 첫번째 게시글이니만큼 에그로그의 서버가 어떻게 변화했는지 정리해보려합니다. 프로젝트의 프로토 타입을 개발하던 시점 인프라를 처음 담당하게되었었습니다. 때문에 당시 목표는 “CI/CD를 구축하자!” 정도였습니다. 그렇게 설계된 시스템의 구성과 특징을 요약하면 다음과 같습니다. submodule을 활용한 환경변수 관리 main 브랜치 push를 트리거로 빌드 Docker 컨테이너화 AWS Route 53, 로드밸런서를...