분류 전체보기

    번잡한 UX를 개선했을 뿐인데, 매달 500명이 넘게 다운받는 앱이 되었다 (feat. 누적 4.1천 회)

    안녕하세요 K입니다! 오늘은 '리본' 앱을 제작하면서 느낀 점을 공유해보려고 합니다. https://apps.apple.com/kr/app/%EB%A6%AC%EB%B3%B8-reborn/id1637041855 ‎리본 REBORN ‎우리 주변에 어떤 유기동물들이 있을까요? 해당 소식들을 리본으로 모두 확인하고 입양하세요. [주요 기능] - 시, 도별 유기동물 정보 조회 - 동물의 상세 정보 한 눈에 확인하기 - 관심있는 동 apps.apple.com 배경 리본은 개발 뿐만 아니라, PM과 디자인의 업무까지 경험할 수 있었던 뜻깊은 프로젝트였다. 팀원의 합도 잘 맞아서 다른 팀들보다 순탄하게 흘러갔던 기억이 있다. 뿐만 아니라 괄목할만한 결과까지 거두고 있기에 애착이 많이 가는 프로젝트이자 앱이다. 어떤 요..

    블로그와 Stack Overflow만 찾던 내가 공식문서와 친해진 계기

    안녕하세요 K입니다. 이번에는 제가 공식문서에 느끼는 어려움, 벽을 허물 수 있었던 계기를 공유해보려고 합니다! 회고 격의 글인 만큼 편한 문체로 작성된 점 양해바랍니다! 배경 #1 독립서점 플랫폼 킨디를 개발하면서 메일로 서점을 제보하는 기능을 개발해야 했다. 왜냐하면, 독립서점의 시장 특성상 서점의 생명주기(?)가 굉장히 짧아서, 서점의 개점, 폐점이 잦은 편이었다. 하지만, 우리가 전국의 모든 서점을 추적하기에 한계가 있었다. 만약 유저가 찾는 서점이 우리 앱에 없다면, 그것도 찾는 서점이 연속적으로 많이 없다면 앱에 대한 신뢰도가 저하될 우려가 있었다. #2 그래서 우리는 독자가 직접 새로운 서점을 제보하거나, 없어진 서점을 알려줄 수 있는 '서점 제보하기' 기능을 고안해냈다. 이 기능은 유저가 ..

    결국 개발도 ‘사람’이 하는 일이었다

    안녕하세요 K입니다! 오늘은 제가 지난 프로젝트 킨디를 3개월간 이끌며 느낀 점, 배운 점을 공유하려고 펜을 들어봤습니다. 회고 식의 글인 만큼 편한 문체로 작성한 점 양해바랍니다!배경돌이켜보면, 킨디는 어느 때보다 좋은 프로덕트를 만들겠다는 일념, 열정, 집착, 몰입, 집중이 심했던 프로젝트였다. 시간, 사람, 장소, 아이디어, 흥미, 동기 부여 등 성공적인 프로젝트를 수행하기 위한 모든 요인들이 뒷받침되었기 때문이다. 그래서 나는 어떻게 해서든 남과 스스로에게 성과로 증명하고 싶었다. 그때의 내 머릿속엔 오로지 성과밖에 없었다. 행동#1 일을 잘하고 싶어서 '일'에만 집중했다. 회의 때도 일 얘기가 아닌 말이 나오는 것을 꺼려했고, 사석에서 팀원과 편하게 얘기하는 시간을 가지지 않았다. 초반에는 식사..

    비전공 iOS 개발자가 프로젝트가 끝나자마자 3개월 동안 CS 강의만 들은 이유

    안녕하세요 K입니다. 어느덧 올해도 상반기가 한 달밖에 남지 않았는데요, 잘 보내셨나요? 저는 이번 상반기에는 저에게 부족한 부분(CS, 알고리즘 등)을 공부하면서 보냈습니다. 특히 작년 저에게 CS가 정말 필요하다고 느껴서 올해 초에는 CS 공부에만 전념했습니다. 이런 결정을 하게 된 계기와 어떤 식으로 공부했는지에 대해 남겨보려고 합니다. (회고 특성상 편한 말투로 써보았습니다.) 배경 작년에 3개의 어플을 출시하면서 어느 정도 '그럴 듯하게 보이는' 프로덕트는 만드는 정도까지는 할 수 있게 되었음. 왜냐하면, 약간의 구글링 실력과 swift 문법에 대한 기초적인 이해만 있으면 얼마든지 코드 가져다 써서 구현할 수 있으니까. 하지만 이 정도는 누구나 다 할 수 있는 일이라는 생각이 들었고, 이런 식으..

    리본 (REBORN) iOS 앱 개인정보 처리 방침

    ('https://github.com/DeveloperAcademy-POSTECH/MC3-STUDI-REBORN'이하 '리본')은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. ○ 이 개인정보처리방침은 2022년 10월 30부터 적용됩니다. 제1조(개인정보의 처리 목적) ('https://github.com/DeveloperAcademy-POSTECH/MC3-STUDI-REBORN'이하 '리본')은(는) 앱 기능(사용자 인증) 과 제품 개인 맞춤화(위치정보를 이용한 추천)을 위해 개인정보를 처리합니다. 제2조(개인정보의 처리 및 보유 기간) ..

    [CS - 운영체제] 스레드와 멀티 스레드 (Feat. 멀티 프로세스 vs 멀티 스레드)

    스레드 (Thread) 개념 한 프로세스에서 실행되는 동작(기능 function)의 단위 하나의 프로세스 내부에 스레드가 한 개일 수도, 여러 개일 수도 있음. 이때 여러 개인 경우를 멀티 스레드(Multi Thread) 예) 유튜브라는 하나의 프로세스를 진행할 때 동영상 렌더링(스레드1), 댓글 조회(스레드2), 추천 동영상 탐색(스레드3) 등 각 스레드는 프로세스에 할당된 메모리 영역 중 코드, 데이터, 힙 영역을 공유 각 스레드는 스택 메모리 영역을 독립적으로 사용 독립적인 스택 메모리 필요 스레드는 하나의 실행 단위 → 함수를 호출함 함수를 호출하기 위해 인자 전달, return address 저장, 함수 내 지역 변수 저장 등을 위한 독립적인, 개별적인 공간 필요 독립적인 공간이 필요하다는 건 ..

    [CS - 운영체제] 프로세스와 멀티 프로세스 (Process, Multi Process)

    프로세스 (Process) 개념 일종의 명령어 리스트 또는 실행 파일인 프로그램이 하드 디스크에서 메모리로 적재되어, CPU에게 할당받아 실행(연산)되는 프로그램 흐름 우리가 코딩을 해서 프로그램을 작성 컴파일 하드디스크(HDD)에 프로그램 저장 RAM 메모리에 적재 CPU가 직접 접근해서 CPU에 할당 CPU가 프로그램을 한줄 한줄 읽으며 처리함 명령어 처리가 진행되면 프로그램은 프로세스가 되었음 메모리 메모리 : CPU가 직접 접근할 수 있는 컴퓨터 내부의 기억장치. 우리가 말하는 메모리는 RAM 메모리를 의미한다. 메모리에는 4가지 영역이 존재한다. 코드 : 프로그램의 코드를 저장하는 메모리 영역 데이터 : 프로그램의 전역 변수, static 변수를 저장하는 메모리 영역 힙 : 프로그래머가 직접 공..

    [알고리즘 - Swift] 순열과 조합 구현하기

    순열과 조합 코테 문제를 풀다보면 순열과 조합이 필요한 경우가 있다. Swift에서는 순열과 조합을 직접 구현해야 한다. 순열과 조합은 각각 Stack, 재귀를 통해 구현할 수 있다. 어떻게 구현하는지 순열부터 알아보자. 순열 순열은 서로 다른 m개에서 n개를 골라 줄세우는 것이다. (mPn) 줄을 세우기 때문에 요소들의 순서 또한 경우의 수에 영향을 준다. Stack func permutation(_ array: [T], _ num: Int) -> [[T]] { var result = [[T]]() /// 주어진 원소 개수보다 많은 가짓수를 뽑을 수 없음 guard num 0 { let current = stack.removeLast() let elements = current.0 var visited..