2024/08 12

한끼의 디자인 고민들

온보딩 카라 세우기온보딩은 유저가 주저리주저리 설명하는 것을 허락하는 딱 '한번의 기회'이다.이후에는 어떤 방식으로든 '설명'하는 태도를 잡으면 유저는 이탈한다. 그래서 이 기회를 놓치면 유저에게 한끼가 어떤 서비스이고, 어떤 브랜딩을 가지고 있는지 설명할 수 있는 기회는 없다.한끼가 어떤 서비스이고, 어떤 가치를 제공하고 있는지를 알아가면서 유저가 한끼에 애착을 가지기에 유저가 온보딩을 읽게하는 것은 생각보다 중요한 작업이다. 조금 더 냉정하게 말해보면사실 유저는 온보딩에서 마저도 자세히 보지 않는다. 온보딩 화면을 자세히 들여다보고 있다면 아마 디자이너가 숨겨놓은 건너 뛰기 버튼을 찾고 있는 것일 것이다. 흐으음... 그럼 어떻게하면 유저가 멈춰서, 한 번이라도 온보딩을 읽게 만들까?읽지 않고 보게 ..

Design 2024.08.29

MVP 단계에서 가치제안캔버스를 해야하는 이유!

어플리케이션 릴리즈를 준비하면서, 초기 MVP 단계에서 가장 중요한 것은 고객의 진짜 문제를 파악하고, 그것을 해결할 수 있는 명확한 가치를 제공하는 것이다.이 가치를 찾기 위해서 가치제안캔버스를 활용하면, 고객의 목소리를 중심으로 제품을 개발하고, 팀의 목표를 통일하며, 자원을 효율적으로 사용할 수 있다. 결국, 가치제안캔버스는 성공적인 어플리케이션 출시를 위한 필수적인 첫걸음이라고 할 수 있다😊 가치제안캔버스란 무엇인가요?가치제안캔버스는 제품이나 서비스가 고객에게 어떤 가치를 제공하는지 시각적으로 정리할 수 있는 도구이다이 캔버스는 크게 두 부분으로 나뉘는데, 하나는 고객의 니즈와 문제를 이해하는 '고객 세그먼트' 부분, 다른 하나는 이러한 니즈를 충족시키고 문제를 해결해줄 '가치 제안' 부분이다...

Product 2024.08.29

Compositional Layout으로 제보하기 화면 만들기

안녕하세요. 한끼족보의 iOS 개발자 서은수입니다! 👋🏻이번에 iOS 파트의 두번째 타자로 아티클을 작성하게 되었는데요.제가 이야기 하고 싶은 주제는 Compositional Layout 입니다.  UICollectionViewCompositionalLayout | Apple Developer DocumentationA layout object that lets you combine items in highly adaptive and flexible visual arrangements.developer.apple.com 제가 했던 한끼족보의 초기 '제보하기' 뷰 스케치는 아래와 같습니다.뷰를 하나씩 뜯어볼까요?우선 가장 먼저 보였던 건 '식당을 등록해주세요', '식당의 종류를 알려주세요', '메뉴를 ..

iOS 2024.08.28

쿼리문 고민(feat.JPA)

작성자 | 서버 팀원 박서진   사용 기술JPASpring boot(3.3.1)Database : PostgreSQL   한끼족보 서버는 이번에 데이터베이스에 접근하는 프레임워크로 JPA를 채택하였는데, 요구사항 변화에 따라 JPA의 한계에 대응하며 쿼리 최적화를 해보았다. 특히 짧은 개발 기간 동안 고민과 변화가 가장 많았던 API를 통해 어떤 과정으로 쿼리 최적화를 했는지에 대한 과정을 기록하려한다. JPA 채택 이유 우선 서버 팀에서 왜 DB 접근 프레임워크로 JPA를 채택했는지부터 간단하게 설명하고자 한다.  JPA란 Java Persistence API의 약자로, 자바 진영 ORM(객체와 관계형 DB 테이블을 매핑해주는 기술) 표준이다. 기존의 MyBatis와 같은 SQLMapper는 개발자가 ..

Server 2024.08.28

저는 Developer가 아닙니다

안녕하세요 한끼족보 Android Lead 개발자 박동민입니다.오늘은 다소 생뚱맞은 제목과 함께 찾아왔습니다. Android Lead 개발자라고 첫 줄에서부터 소개하고 있는데 Developer가 아니라는 제목에 놀라셨겠지만 저는 Developer가 되는 것을 지양하고 있습니다. 그 이야기를 한끼족보와 함께 해보려고 합니다.   👨‍💻 Developer가 뭐가 어때서? 제 개발자로서의 가치관은 "Coder가 되지말고 Develoer가 되자" 였습니다.  다른사람이 작성한 코드를 단순히 따라 치는게 아니라, 제가 작성하는 모든 코드에 이유를 담고 좋은 코드를 작성하고 싶었습니다.또한 성능상으로 우수하고 다른사람이 읽어도 본인이 짠 코드처럼 수월하게 읽히는 코드를 작성하고 싶다는 욕심이 생겼습니다. 그래..

Android 2024.08.24

한끼족보의 브랜딩 이야기

한끼족보는 대학 근처에서 8000원 이하의 저렴한 식당을 찾을 수 있도록 도와주는 서비스로, '공유'와 '유대'라는 핵심 가치를 지향합니다. 유저들은 단순히 정보를 얻는 것을 넘어, 서로에게 도움이 되는 제보를 통해 함께 식당 지도를 만들어가는 소속감을 느낄 수 있습니다. 이러한 한끼족보의 비전을 실현하기 위해 브랜딩 디자인을 맡아 진행한 경험을 돌아보고자 합니다.  브랜딩의 초석: 타겟 공감과 핵심 가치의 구현 브랜딩 디자인에서 중요한 것은 단순히 시각적으로 아름다운 디자인을 만드는 것이 아니라, 타겟 사용자들이 공감할 수 있는 핵심 키포인트를 잡는 것입니다. 처음에는 '족보'라는 이미지에 집중하여 이를 대학생들의 폴더로 해석하는 접근을 했습니다. 사람 이미지가 진부하다는 느낌을 줄까 염려되어 일부러 ..

Design 2024.08.08

한끼족보 iOS의 프로젝트 초기세팅

안녕하세요. 한끼족보 iOS 리드 김가현입니다. 이번 iOS의 첫 아티클은 프로젝트 세팅에 대해서 적어보려고 합니다.  새로운 프로젝트를 시작할 때, 가장 심도있게 고민해야 할 부분 중 하나는 프로젝트 세팅입니다. 체계적인 세팅은 프로젝트의 효율성을 좌우하는 중요한 부분이기도 합니다. 특히, 저희 한끼족보 iOS팀은 프로젝트 세팅을 기반으로 다양한 컨벤션을 정했기 때문에 더욱 중요하게 생각을 했습니다.  기본 세팅, 폴더 구조 설정, 폰트 설정, 색상 및 에셋 설정, 기본 코드 베이스 설정까지 크게 5가지로 나눠서 이야기 해보도록 하겠습니다.  기본 세팅 하는 방법  처음 프로젝트를 생성한 후에는 프로젝트 이름, 팀, 조직 이름 및 번들 식별자를 입력을 합니다. 그 후, 프로젝트를 지원할 최소 iOS 버..

iOS 2024.08.08

힐트, 클린아키텍처 그리고 로그인 리이슈...

안녕하세요, 한끼 안드로이드 개발자 공세영입니다. 저는 이번 프로젝트를 진행하며 적용한 힐트와 클린아키텍처에 대한 간단한 설명을 하고제가 구현한 로그인의 순환호출 이슈 해결에 대해 이야기하고자 합니다ㅎㅅㅎ이 글을 읽고 조금이나마 도움이 되었으면 좋겠습니다..ㅎㅎ  먼저 힐트란?Hilt는 애플리케이션에 DI를 삽입하는 표준 방식으로, 프로젝트의 모든 Android 구성요소에 컨테이너를 제공하고 컨테이너의 수명 주기를 자동으로 관리합니다. 이 방식은 많이 사용하는 DI 라이브러리인 Dagger를 활용한 것입니다. 여기서 DI(Dependency Injection) 즉, 의존성 주입은 소프트웨어 디자인 패턴 중 하나로,특정 객체의 인스턴스가 필요할 때 이를 직접 생성하지 않고 외부에서 생성된 객체를 전달하는 ..

Android 2024.08.07

UI도 두들겨 보고 건너라 - modifier 알아보기

안녕하세요, 한끼족보의 Android 개발자 송혜음입니다 한끼족보 Android는 100% compose로 작성되었습니다 여러분은 Compose를 잘 알고 계신가요? 사실 Compose는 등장한지 오래되지 않았기때문에 아직 모르거나 잘알지 못하는 분들이 많이 계실 것 같아요저와 같은 경우도 한끼족보 프로젝트에 들어가기전에는 XML만 사용했기때문에 초반에는 Compose에 익숙해지는데 시간이 필요했었습니다  Compose의 특징은 여러가지 있습니다한끼족보 Android Lead 개발자인 동민님은 지난 아티클에서 특징으로 선언형 UI,컴포넌트화를 뽑아주셨는데관련된 글은 아래 링크에서 확인실 수 있답니다 :) 한끼족보 Android 팀이 도입한 기술과 근거 모음.zip안녕하세요 한끼족보 Android Lead..

Android 2024.08.07

우당탕탕 서브모듈 도입기

안녕하세요. 한끼족보 서버 개발자 김가연입니다.저희 한끼족보 서버 팀은 서버를 구축하기 위해 Spring Framework를 사용하고 있는대요, Spring에서는 애플리케이션의 설정 정보를 관리하는 파일이 있습니다. 바로 resoures폴더의 application.yml 파일입니다. DB와 연동하기 위한 비밀번호, 키 값과 외부 API를 이용하기 위한 API Secret 키 등 외부에 그대로 노출되어서는 안되는 기밀 정보들이 application.yml에 포함됩니다. 이러한 중요한 기밀 정보가 만약 Public Git 저장소에 노출되어 악용된다면 어마어마한 서비스 비용이 부과되는 등 매우 위험한 상황으로 이어질 수 있습니다.때문에 만약 Git을 사용하여 협업을 한다면 application.yml 파일은 ..

Server 2024.08.07