나의 도전과 경험, 그리고 성장까지의 이야기
-
[이투스 싱크탱크 1기] #1 - 서류부터 면접, 최종합까지
이미 활동이 끝난 지 한 달이 넘어가지만, 맥북을 주섬주섬 꺼내 늦지 않은 후기를 적어봅니다😳 언젠가는 기록해야지 기록해야지 하면서도, 글쓰기를 싫어하는 아니 싫어하는건 아니고 조금 귀찮아하는 내 성격 때문에 (맞나?) 이제서야 써보는 이투스 싱크탱크 활동 후기 1탄 지금 시작합니다 ^_^ 이투스, 내가 독학재수를 하면서 참 애용했던 사이트였다. 사실, 이투스라는 인강을 잘 활용했던 건 아니고, 내 수학 1등급을 만들어준 정승제 생선님이 속한 인강 사이트였는데.. 그런 나에게 친숙한 기업이 "1기" 대외활동을 모집한다는 글을 보고 자연스럽게 눈길이 갔다. 어쩌면 정승제 선생님을 직접 볼 수 있지 않을까...? 하는 기대감과 + 한창 대외활동을 구하던 내 겨울 시기의 타이밍이 딱 잘 맞아 지원을 생각하게 ..
-
[이투스 싱크탱크 1기] #2 - 발대식과 첫 대면 만남
8월이 돼서야,, 작년 12월 말에 진행했던 발대식 회고를 쓰다니,,, 아니야 지금이라도 쓰는 게 어디야... 최근 들어 내가 해 온 활동들의 회고를 하나 둘 열심히 써보고 있는데, 제법 예전 생각도 나면서, 사진첩 돌아보는 재미도 있고, 제법 즐겁다☺️ 오늘은 이투스 싱크탱크 연구원 합격했던 지난 #1 포스팅에 이어서, (혹시나 지난 글을 읽고 싶다면👇🏻) [이투스 싱크탱크 1기] #1 - 서류부터 면접, 최종합까지 이미 활동이 끝난 지 한 달이 넘어가지만, 맥북을 주섬주섬 꺼내 늦지 않은 후기를 적어봅니다😳 언젠가는 기록해야지 기록해야지 하면서도, 글쓰기를 싫어하는 아니 싫어하는건 아니고 조금 mini-min-dev.tistory.com 짧게 온라인 발대식과 팀원들을 처음으로 이투스 본사에서 만났을 ..
-
[이투스 싱크탱크 1기] #3 - 사용자의 입장에서 서비스를 경험하기
2021.01.05 - 02.23 벌써, 싱크탱크 회고 3번째다.. 언제 회고 다 쓰지... 아무튼 오늘은 이투스 싱크탱크 대학생 연구원으로 선발된 후, 처음 수행했던 프로젝트 회고를 써보려 한다. 벌써 이게 6개월 전이라니.... 흠... 얼마나 내용이 길어질지는 모르겠지만 일단 렛츠꼬우💨 👇🏻 호옥쉬나 싱크탱크 2번째 시리즈 지난 글이 보고 싶다면 👇🏻 [이투스 싱크탱크 1기] #2 - 발대식과 첫 대면 만남 8월이 돼서야,, 작년 12월 말에 진행했던 발대식 회고를 쓰다니,,, 아니야 지금이라도 쓰는 게 어디야... 최근 들어 내가 해 온 활동들의 회고를 하나 둘 열심히 써보고 있는데, 제법 예전 생각도 mini-min-dev.tistory.com 싱크탱크 연구원 첫 2개월 동안은 창의융합 프로젝트..
-
[이투스 싱크탱크 1기] #4 - 강연을 통해 배울 수 있었던 점들
벌써 이투스 싱크탱크 활동 4번째 회고다. 6개월 동안 활동했던 내용을 시간이 지난 지금에서야 이렇게 하나둘 회고해보니, 사진도 한 번씩 둘러보고, 활동했던 기억도 새록새록 떠오르게 되는 것 같다 ^_^ 오늘은 프로젝트 결과만 계속 시리즈로 썼던 것에서 잠깐 벗어나, 잠깐 쉬어가는 차원에서 싱크탱크 활동을 하면서 들었던 여러 강연들 중 인상 깊었던 내용들을 모아 이곳에 정리해보려고 한다. 👇🏻 창의융합 프로젝트 포스팅이 보고 싶다면 👇🏻 [이투스 싱크탱크 1기] #2 - 발대식과 첫 대면 만남 8월이 돼서야,, 작년 12월 말에 진행했던 발대식 회고를 쓰다니,,, 아니야 지금이라도 쓰는 게 어디야... 최근 들어 내가 해 온 활동들의 회고를 하나 둘 열심히 써보고 있는데, 제법 예전 생각도 mini-mi..
-
[이투스 싱크탱크 1기] #5 - 내 아이디어가 구체화되기까지
블로그를 개설하고 오늘이 20번째 게시물이다. 토익 공부하느라 정신이 없어서, 요즘은 매일같이 블로그 글을 못 올리고 있다 ㅠ 그래도 꾸준히 글을 쓰는 습관을 들이고자 회고를 쓰기로 했으니, 시간이 날 때마다 틈틈이 들어와서 회고를 마무리 짓도록 하자:) 오늘은 이투스 싱크탱크 활동에서 3월부터 6월까지 4개월동안 진행했던 두 번째 프로젝트, TFT 프로젝트에 대한 회고를 작성해보려 한다. 얼마나 길어질지는 모르겠지만, 오늘도 일단 가보자고💪🏻 TFT 프로젝트란? TFT는 Task Force Team의 약자로 회사에서 업무 이외의 특정한 프로젝트를 수행하기 위해서 만든 임시 조직을 뜻한다. 우리 같은 경우에는 대학생들이 창의적인 아이디어를 제안해 최종 시제품까지 개발, 검증까지 진행하고자 하는 목적으로 ..
-
[이투스 싱크탱크 1기] #6 - 싱크탱크를 마무리하며
길었던 싱크탱크 회고의 마지막 글을 쓸 차례다. 처음에는 싱크탱크 합격후기랑 프로젝트 두 개만으로 간략하게 글이 마무리될 줄 알았는데, 생각보다 활동을 열심히 해서인지 6개월이라는 시간이 결코 짧지 않아서인지 벌써 6개나 글이 쓰였다. 오늘은 마지막 TFT 발표와 해단식까지 마지막으로 돌아보자 ^__^ (혹시나 지난 글 읽는 거 까먹으셨을까 봐 ^__^) [이투스 싱크탱크 1기] #5 - 내 아이디어가 구체화되기까지 블로그를 개설하고 오늘이 20번째 게시물이다. 토익 공부하느라 정신이 없어서, 요즘은 매일같이 블로그 글을 못 올리고 있다 ㅠ 그래도 꾸준히 글을 쓰는 습관을 들이고자 회고를 쓰기로 했으 mini-min-dev.tistory.com 6월: 프로젝트의 끝을 향해서 프로토타입 영상을 제작한 후,..
-
[28th SOPT] #1 - 솝트 지원부터 면접, 합격까지 후기
이.. 것도 3월에 시작한 활동이지만... 지난 학기에 너무 바빴던 저이기에.. 5개월이 지난 지금..솝트 후기 활동을 하나 둘 써보려고 합니다..^^ 최대한 빨리 솝트에서 했던 모든 활동들, 리쿠르팅, 세미나, 운영팀, 행사, 솝커톤, 앱잼, 스터디 회고를 하나 둘 시리즈로 올려보겠습니다..! 개발을 본격적으로 시작한 지 약 3개월 인터넷 강의로 끄적끄적 파이썬 공부만 하던 나는 개발 흥미를 조금씩 잃기 시작한다. 늘지 않는 실력과 매일 반복되는 재미없는 에디터 검은색 창,, 재미있는 프로그램을 만들지도, 깃 사용방법도, 네트워크도 부족했던 나는 IT 창업 동아리를 찾게 된다. 솝트는 IT 벤처 창업 동아리 중에서는 가장 큰 규모와, 긴 역사를 자랑했다. 기획, 디자인, 안드로이드, iOS, 웹, 서버..
-
[28th SOPT] #2 - iOS 개발자가 되가는 과정, 파트별 세미나
오늘은 솝트 회고 두 번째 시리즈! 👇🏻 첫번째 시리즈는 아래에 👇🏻 [28th SOPT] #1 - 솝트 지원부터 면접, 합격까지 후기 이.. 것도 3월에 시작한 활동이지만... 지난 학기에 너무 바빴던 저이기에.. 5개월이 지난 지금..솝트 후기 활동을 하나 둘 써보려고 합니다..^^ 최대한 빨리 솝트에서 했던 모든 활동들, 리쿠르팅, mini-min-dev.tistory.com 솝트 자체적으로 진행했던 8번의 세미나 회고를 작성해보려 한다 :) 솝트의 세미나는 어떻게 진행되고, 어떤 걸 배우는지 자세하게 한번 알아보도록 하자. 세미나? 그게 뭔데? 솝트는 매주 토요일마다 각 파트별로 나누어서 4시간 정도 되는 자체 세미나를 진행한다. 각 파트의 파트장님들이 매주 세미나 자료와 수업을 진행해주시면, 파..
-
[28th SOPT] #3 - 16시간의 기억, 명함 서비스 나다 NADA
2021.05.22 - 05.23 28기 솝트 회고에서 세 번째로 다룰 내용은 '솝커톤'이다. 솝커톤은 솝트와 해커톤의 합성어로, 4주차 동안 iOS 파트 세미나에서 배운 내용을 바탕으로 기수 후반기에 진행되는 자체 해커톤인 앱/웹잼을 시작하기 전, 본인의 실력을 검증하고 다양한 파트와의 협업을 경험해보는 행사를 말한다. 솝커톤 신청 공지가 올라왔을 때만 하더라도 4번 세미나를 들은 나의 실력으로 서비스를 만들 수 있을까.. 혹시나 참여했다가 민폐만 끼치는 게 아닐까는 겁도 났었지만, 솝트가 추구하는 솝커톤의 목표가 "도전을 통한 개인과 팀 그리고 조직 전체의 성장"인 만큼 내 인생 첫번째 무박 2일 해커톤에 도전하게 된다💪🏻 (참고로, 모집은 선착순으로 진행된다. 마감 속도가 정말 후덜덜.. 또한, 코..
-
[CJ UNIT 5기] #1 - CJ SW창의캠프 대학생 봉사단 최종 합격 후기
이번 2학기를 휴학을 하기로 결심하고, 힐링도 하면서, 여유롭지만, 알차게, 올 하반기를 보내기 위해 계획을 짜보게 된다. 그 계획중 하나는 바로, 하반기 대외활동에 참여하기! 대신, 아무 대외활동에 참여한다는 계획은 아니고, 나 나름대로의 기준을 세우고 있었다. 1) 소프트웨어와 관련있는 활동 2) 온라인보다는 오프라인으로 진행될 수 있는 활동 3) 규모가 있는 활동 그러던 중, 딱 발견하게 된 활동이 SW창의캠프 대학생 봉사단 CJ UNIT이다. CJ UNIT 5기는 코딩교육을 지원하고, 커리큘럼을 개발하는 강사부문과 홍보 콘텐츠를 제작하는 홍보 부분을 모집했는데, 나같은 경우에는 영상 촬영, 편집과는 거리가 먼 사람이라...강사부문으로 지원을 하게 된다. CJ UNIT은 공식 유튜브 채널과 인스타그..
-
[CJ UNIT 5기] #2 - 유닛 발대식과 사전교육까지
CJ UNIT 5기에 최종 합격을 한지가 벌써 3주가 지났다 ^_^ 분명 활동을 할 때마다 밀리지 않도록 열심히 글을 쓴다고 했는데... 어느새 발대식과 사전교육까지 모두 끝나버렸ㄷㅏ.. 이럴 수가... 시간이 너무 빠르잖아.. [CJ UNIT 5기] #1 - CJ SW창의캠프 대학생 봉사단 최종 합격 후기 이번 2학기를 휴학을 하기로 결심하고, 힐링도 하면서, 여유롭지만, 알차게, 올 하반기를 보내기 위해 계획을 짜보게 된다. 그 계획중 하나는 바로, 하반기 대외활동에 참여하기! 대신, 아무 대외 mini-min-dev.tistory.com 그래서 오늘은 더 늦기 전에 온라인으로 진행한 발대식과, 대면으로 진행한 사전교육까지 요약해서 써보려고 한다 :) CJ UNIT 5기는 강사 부분 24명 홍보 부분..
-
[CJ UNIT 5기] #3 - 중학생들에게 레고로 코딩을 가르친다고?
정말 오랜만에 쓰는 회고 글이다. 유닛 활동을 하게 된 지 벌써 4개월이란 시간이 흘렀고, 모든 수업이 끝난 지금은 마지막 해단식만을 앞두고 있는 상태이다. 정말 시간이 어떻게 흘러갔는지 모르겠다. (벌써 수료를 앞두고 있다니....ㅠ) 아무튼, 그래서 오늘은 지난 13주간 진행했던 유닛에서의 Lego STEAM 수업을 회고하는 글을 써보려고 한다. 그럼 출발~~~~💨 (혹시나 지난 회고 글을 읽지 않은 사람이 있다고??? 당장 아래 글도 읽고 옵시다 ^__^) [CJ UNIT 5기] #1 - CJ SW창의캠프 대학생 봉사단 최종 합격 후기 이번 2학기를 휴학을 하기로 결심하고, 힐링도 하면서, 여유롭지만, 알차게, 올 하반기를 보내기 위해 계획을 짜보게 된다. 그 계획중 하나는 바로, 하반기 대외활동에..
-
[CJ UNIT 5기] #4 - 2박 3일간의 기록, 아이디어 경진대회 회고
2021.12.01-03 지난주 해단식을 끝으로 CJ UNIT 5기 활동이 모두 끝났다. 모든 활동은 끝났는데... 아직 블로그에 올려야 할 회고 글은 좀 남아있어서... 큰일이다... 군대 가기 전에는 다 쓰고 가야 될 텐데.... 다 쓰고 갈 수 있겠ㅈ...... 아무튼 오늘은 CJ UNIT 5기 회고글 4탄! 목포 혜인여중에서 오프라인으로 2박 3일 간 진행되었던 아이디어 경진대회를 되돌아보는 글을 써보려고 한다 ^__^ 시간이 없으니깐 바로 시자악💨 벌써 몇 번째 말하는 건지 모르겠는데, 우리 SW~ing조가 담당했던 학교는 목포에 있는 혜인여자중학교라는 곳이었다! 이번 기수 CJ UNIT SW창의캠프 커리큘럼 상으로는 13주간 줌을 통해 비대면 온라인 교육을 진행하고, 코로나 변동 상황에 따라 ..
-
[CJ UNIT 5기] #5 - 유닛 5기 활동을 마무리하며
2021.08.20 - 2021.12.29 이제 길고 길었던 CJ UNIT SW창의캠프 대학생봉사단 5기 활동, 마지막 회고 글을 써보려고 한다. 그럼, 바로 벌써 2주나 지난 유닛 5기 해단식부터 간단하게 돌아보도록 하자! 이번 유닛 5기 해단식은 무려 씨지브이에서 진행됐다. 아니, 어디라구요? 우리가 그 영화보러 가는 그 CGV 맞나요....? 네 마쟈요 그 씨지비에요...!!! 코로나 때문에 매주 매주 코 찌르는 PCR 검사도 받고, 15주 정도 진행한 유닛 활동에서 코로나 관련 문제가 하나도 없이 모든 활동을 끝낸 보상이랄까...? 오프라인 해단식을 전혀 기대조차 하지 않고 있었는데,, 오프라인으로, 그것도 영화관에서 해단식을 하게 된다니.. 솔직히 잘 실감이 나지 않았다. 물론, 이번 해단식도 ..
-
[KHUDA] #1 - 전역 후 새로운 도전, 머신러닝 기초세션부터 토이 프로젝트까지
도저히 올 것 같지 않던 내 전역일 2023년 8월 13일도 찾아오고, 논산에서 조교로 보낸 18개월 간의 군생활을 성실히 마치고 나는 사회로 다시 돌아오게 되었다. *아래는 전역날의 기분을 내가 브런치에 쓴 글이다. 궁금하면 링크 타고 들어가서 읽어봐도 좋다:) 전역날 끝났다는 것은 새롭게 시작한다는 것과 같은 말이다. 새로움은 항상 설레고, 가슴이 뛰는 일임이 분명하지만, 오랫동안 기다려온 내 군생활의 마지막 아침은 생각보다 무덤덤했다. 18개월 동안 brunch.co.kr 처음 사회로 나왔을 때 내가 느낀 점은 "1년 6개월이 짧지만은 아닌 시간"이었다는 것이다. 어느덧 내 나이는 20대 초반을 넘어 중반에 자리하고 있었고, 이미 내 주변 사람들은 당당하게 취업을 했거나 취업 준비를 하고 있는, 혹..
Latest Story
-
[Swift] @discardableResult란 무엇일까?
예전 @IBInspectable @IBDesignable 글에서 Swift에서 사용하는 @ 키워드는 컴파일러에게 추가적인 속성이 부여되었음을 알리는 역할이라고 설명한 적이 있었다. 즉, 코드에 메타 데이터 (special attribute와 directive)를 추가하는 역할을 하는 키워드라고 생각하면 된다. 이번 글에서는 @키워드를 사용한 @discardableResult에 대해 설명해보고자 한다. 1. @descardableResult 기본 개념 descardable = 버릴 수 있는, result = 결과 즉, "결과를 버릴 수 있도록 하는 속성"을 추가로 부여한다는 키워드가 @descardableResult이다. 이 키워드가 함수에서 사용되는 키워드라는 점에서 볼 때, 함수에서 해당하는 결과는 "..
-
[Git] .gitignore는 왜 필요하고, 어떻게 적용하는 것일까?
깃은 복잡해보이지만, 간단히 요약해서 내 컴퓨터(로컬)에서 작업한 코드들을 깃(원격)이라는 공간에 올리는 것. 그게 전부이다. 이때, 내 컴퓨터에서 작업했던 파일을 깃이라는 곳에 올릴 때, 예상치도 못한 낯선 파일들이 올라갈 수 있다는 사실! 뭐…예를 들자면 Mac을 쓰는 분들에게는 익숙(?)하실 수도 있는 .DS_Store 같은 녀석..? *참고로! DS_Store 파일은 애플에서 정의한 파일 포맷을 의미하는 파일을 의미한다. 애플의 MacOS 시스템이 finder로 폴더에 접근하면 해당 파일이 자동으로 생기게 되는데, 이놈이 이제 계속 수정이 이루어지면 Conflict를 발생시키는 주 원인이라…이 파일이 본인 깃 레포에 한번 들어가면 PR을 한번 올릴 때마다 계속 Conflict가 발생할 수 있다. ..
-
[GitHub] 코드 리뷰 문화 - 토스터 iOS팀이 코드 스타일과 구성을 깔끔하게 유지할 수 있는 이유
팀 블로그에 올린 글입니다! 팀에서 사용한 협업 문화, Code Review 스타일을 비롯한 컨벤션까지 내용을 담고 있어 기록하고자 개인 블로그에도 공유합니다. [iOS] 코드 리뷰 문화: 토스터 iOS팀이 코드 스타일과 구성을 깔끔하게 유지할 수 있는 이유 안녕하세요! 토스터 iOS팀 개발자 코딩하는 체대생, 민군입니다. TOASTER 어플을 앱스토어에 릴리즈한지 어언 2개월이 지나고 있는 지금 시점에서, 저희 iOS 팀의 첫 번째 팀블로그를 작성하고자 힘 velog.io
-
[Swift] for-in문과 forEach 사이의 차이, 그리고 고차함수(map, filter, reduce)의 활용까지
1️⃣ 내가 이 글을 쓰게 된 이유 프로그래밍을 조금이라도 배워본 사람이라면, 반복문의 대표주자로 for-in문이 있다는 것은 당연히 알 것이라 생각한다. Swift에도 당연히 for문을 지원하기에 평소 for-in 코드를 사용한 반복을 많이 사용하곤 했었는데, 반복을 목적으로 짠 코드에서 forEach문 역시 동일한 기능을 제공한다는 것을 다른 협업 팀원들의 코드에서 많이 확인할 수 있었다. 이에 그동안 나도 무지성 따라 치기(?) 스킬로 forEach라는 코드를 사용했지만, 사실 for문과 어떤 점에서 차이가 있는지, 성능 차이는 존재하는지에 대한 고찰이 없었기에 항상 공부하고 싶었던 내용이었다. 여기에 덧붙여, 최근 진행하던 프로젝트에서 iOS 멘토님에게 받은 피드백 중 하나가 "for + appe..
-
[Design Pattern] 내가 보려고 정리하는 Swift 디자인 패턴 (4) - 빌더 패턴(Builder Pattern)
1️⃣ 빌더 패턴 (Builder Pattern)이 왜 필요하게 된 거지? 빌더 패턴 (Bulder Pattern)은 복잡한 객체를 생성하는 방법을 정의한 디자인 패턴이다. "복잡한 객체를 생성한다"는 말이 잘 와닿지 않을 수도 있어, 내가 주문했던 메뉴 중 가장 복잡했던 서브웨이 샌드위치를 예시로 들어보겠다. 서브웨이 샌드위치를 하나 시키기 위해서는 사소하게 주문해야 할 게 참 많았다. 빵은 어떤 것을 고를 거고, 치즈는 어떻게 할 거고, 야채는 어떤 것은 많이 넣고, 어떤 것은 빼고, 소스는 어떻게 하고... 등을 매번 일일이 주문하기 힘들었던 경험이 서브웨이에 한 번이라도 가본 적 있다면, 공감할 것이다. 이 상황을 iOS 개발자의 입장에서 를 객체로 바라보고 코드로 표현하면 아래와 같이 작성할 수..
-
[Design Pattern] 내가 보려고 정리하는 Swift 디자인 패턴 (3) - 전략 패턴(Strategy Pattern)
1️⃣ 전략 패턴 (Strategy Pattern)이란? 전략 패턴(Strategy Pattern)은 특정 상황에서 사용하는 알고리즘을 캡슐화하여 런타임 내에 변경할 수 있게 해주는 디자인 패턴이다. 다시 말해, 사용되는 알고리즘을 별도의 클래스에 배치/분리하여 이 알고리즘 객체를 동적으로 교환할 수 있도록 만드는 패턴이다. 특정 상황? 알고리즘? 변경? 전략? 이 말들이 나도 처음에 잘 이해가 되지 않았기에 하나의 예시를 가지고 설명해 보겠다. 게임 캐릭터를 만드는 개발 업무를 담당하고 있다고 가정해 보자. 해당 캐릭터 클래스에는기본적으로 상대를 공격할 수 있는 attack()이라는 메서드가 포함되어 있다. 단, 캐릭터가 같은 공격을 하더라도 "공격 전략(Attack Strategy)"은 여러 개를 ..
-
[UIKit] 재사용 Component 개발하기 (2) - 팝업창 (Alerts)
[UIKit] 재사용 Component 개발하기 (1) - Toast Message 💡 재사용 Component 개발하기 시리즈 글을 시작하며 이번 33기 앱잼이었던 프로젝트에서 우리 iOS 팀이 추구한 방향 중 하나는, 앱 내에서 반복되는 컴포넌트(내비게이션바, 바텀시트, 알림 창, 토 mini-min-dev.tistory.com 1️⃣ HIG 살펴보기 : 팝업창(Alerts)이란? 보통 팝업창으로 알고 있는 알림창을 iOS 공식문서에서는 정확하게 Alerts라고 부른다. Alerts는 사용자에게 "중요한 문제를 알리는 용도"로 사용한다. 여기서 말하는 "중요한 문제"란 해당 작업으로 데이터가 파괴될 수 있는 경우, 새롭게 시작하는 혹은 앱 안에서 발생한 어떤 중요한 작업에 대해 사용자에게 알리기 위한..
-
[Design Pattern] 내가 보려고 정리하는 Swift 디자인 패턴 (2) - Delegate Pattern
1️⃣ Delegate가 등장하게 된 이유 Delegate는 "대리자" "위임하다" 같은 뜻으로 번역되는 단어다. "위임하다"의 의미를 구체적으로 들어가보면, "당사자의 일방이 상대방에 대하여 '사무의 처리'를 위탁하고, 상대방이 이를 승낙함으로써 성립하는 것"이라고 한다. 즉, 쉽게 말해 Delegate는 "너가 나 대신 일 좀 해줘!" 라는 의미를 가지고 있는 단어다. (전문용어로 짬 때린다) "본인 일을 본인이 하면 되지 왜 남한테 떠넘겨?" 라고 할 수도 있지만, 사실 이 Delegate가 필요하게 된 상황을 보게되면 공감이 될 거다. 프랜차이즈 햄버거 가게 사장이 되었다고 예시를 들어보겠다. 불고기 버거와 치킨 버거 두 가지 메뉴만 판매하는 가게에서 햄버거 레시피는 우리 가게 프랜차이즈의 특성을..
-
[Design Pattern] 내가 보려고 정리하는 Swift 디자인 패턴 (1) - 싱글톤 패턴(Singleton Pattern)
1️⃣ static : 타입 프로퍼티 (Type Property) 개념 정리 Swift의 static 키워드는 인스턴스 생성 여부와 상관없이 무조건 1개의 값만 존재하는 프로퍼티를 선언할 때 사용한다. 객체 지향 프로그래밍에서 처음 내가 어렵게 느꼈던 부분은 한 행위 또는 내용물에 대해 여러 표현법을 사용한다는 점이었다. 그래서 이 글을 읽는 다른 사람들은 과거의 나 같은 어려움을 느끼지 않았으면 하는 마음에서, 용어를 먼저 정리해보고자 한다. 인스턴스 = 클래스 혹은 구조체에서 찍어낸 결과물 = 붕어빵 틀에서 만들어진 붕어빵 = 객체 (매우 중요!) 생성 = 클래스 혹은 구조체에서 결과물을 찍어냄 = 변수 또는 상수에 클래스/구조체를 기반으로 한 값을 대입함 = 클래스/구조체에서 비롯된 객체가 메모리에..
-
[UIKit] 재사용 Component 개발하기 (1) - Toast Message
💡 재사용 Component 개발하기 시리즈 글을 시작하며 이번 33기 앱잼이었던 프로젝트에서 우리 iOS 팀이 추구한 방향 중 하나는, 앱 내에서 반복되는 컴포넌트(내비게이션바, 바텀시트, 알림 창, 토스트 메시지 등)를 재사용할 수 있도록 만드는 것이었다. 공통으로 반복되는 부분과, 변화가 필요한 부분을 고민해서 모듈화 시킨 과정을 이번 시리즈에서 같이 느껴볼 수 있길 바란다. 1️⃣ Toast Message란? 토스트 메시지(Toast Message)는 원래 안드로이드에만 존재하는 컴포넌트이다. 보통 앱 사용 중, 사용자와의 상호작용은 계속 열어둔 상황에서 동시에 짧은 메시지를 사용자에게 보여주기 위해 사용하는 컴포넌트다. 사용자의 인터랙션이 별도로 없어도 특정한 시간 뒤에 표출, 사라짐 동작이 자..
-
[WebKit] WKWebView를 사용해서 앱 사용 중, 웹으로 연결시켜보자
1️⃣ 이번 글에서 구현하고자 하는 기능은? 이번 글에서는 URL 링크를 저장하고, 해당 링크를 앱 안에서 웹 페이지로 띄울 때 사용한 모든 기능들에 대해서 정리해보겠다. 이번 프로젝트에서 앱 내 웹 콘텐츠를 표출시키는 방식으로 WKWebView를 사용했다. WKWebView란 Apple의 기본 프레임워크 WebKit를 기반으로 동작하는 뷰이며, 네이티브 앱과 웹 콘텐츠 사이의 상호작용을 도와주는 다양한 기능을 지원하는 화면이다. 대표적으로, 웹 뷰의 내비게이션(뒤로 가기, 앞으로 가기) 동작이나 새로고침, 페이지의 타이틀, URL 같은 기본적인 정보들을 받아올 수 있으며, 심지어는 웹 페이지의 로딩 상태나 스크롤 위치 같은 디테일한 부분도 사용할 수 있다. 💡 앱 사용에 있어 외부 URL 연결 방식에 ..
-
[Swift] Swift는 에러를 어떻게 처리할까? (Error Handling)
오늘은 Swift에서 에러를 처리하는 방법, Error Handling에 대해 배워보도록 하겠다. 모든 프로그래밍 언어가 에러를 처리하는 방법을 가지고 있듯이, Swift도 마찬가지로 프로그램에서 발생한 에러 조건에 응답하고, 처리하는 프로세스를 갖고 있다. 공식문서 상에서는 이것을 "Swift는 런타임 에러를 던지고(throwing), 잡고(catching), 전파하고(propragating), 조작하는(manipulating) 방법을 모두 지원한다"라고 표현했다. 에러를 "던지고", "잡고", "전파"하고, "조작"한다는 말이 혹시 어렵지는 않은가...? (나만 그런가) 내가 공부를 했을 때, Swift 공식문서를 보고 공부하기에는 번역상으로 이해가 안 가는 말이 많아서 많은 어려움을 겪었는데, 이번..
-
[Clean Architecture] OOP의 SOLID 원칙을 Swift의 관점에서 이해하기
0️⃣ OOP(Object-Oriented Programming)와 SOLID 원칙 "일단 앱잼 기간 중에 빨리 기능부터 구현하고, 우리 앱잼 끝나면 진짜 리팩토링하자!" 단기간에 결과물을 내야하는 솝트 동아리 내의 과제, 합동 세미나, 장기 해커톤 앱잼 같은 곳에서 가장 많이 들었고, 가장 많이 해온 말이다. 하지만 해당 기능 개발이 끝나면, 또 다른 기능 개발이 개발자들을 기다리고 있고.... 또 다른 기능 구현을 우선적으로 하다 보면, 코드 정리나 프로젝트의 구조를 개선하는 일은 후순위가 항상 되기 마련이었다. 어쩌면 리팩토링은 평생 동안 목표에 그칠 수밖에 없는 "이룰 수 없는 과제"일지도 모르겠다. 그래서 나는 여기서 의문을 하나 가지게 되었다. "겉으로 보이지 않는 코드의 퀄리티나 프로그램의 ..
-
[UICollectionView] Drag & Drop cell 위치 변경, Delegate로 구현하기
1️⃣ 이번 글에서 구현하고자 하는 기능은? 이번 글에서 구현할 기능은 예전에도 한번 구현해 본 경험이 있던 컬렉션 뷰에서 특정 Cell을 꾹 눌러 드래그할 때, Cell의 순서를 바꿀 수 있는 Drag & Drop 기능이다. 사실 이 내용은 예전에도 한번 다룬적이 있던 내용이다. (당시 썼던 글 내용이 궁금하다면, 아래 링크를 타고 넘어가봐도 좋다 ^__^) [UITableView] 테이블 뷰 Drag & Drop으로 cell 위치 바꾸기 그동안 맥북을 수리 맡기느라 iOS 관련 포스팅을 못하고 있었다. 거의 1주반에 달하는 긴 기다림의 시간이 지나고, 다시 달려보려고 한다🌊 오늘 다룰 Challenge는 테이블 뷰를 드래그 앤 드롭해서 mini-min-dev.tistory.com 당시 글에서는 테이블..
-
[iOS] TOASTER 토스터 - 링크 아카이빙 & 리마인드
Download on the App Store Intro [더 이상 링크를 태우지 마세요. 토스트 먹듯이 간단하게! TOASTER] 그동안 여러 플랫폼 이곳 저곳에 링크를 저장해왔나요? 링크가 필요할 때 바로바로 찾지 못해 불편하지는 않으셨나요? 링크를 저장하고 다시 읽기까지의 여정에서 생기는 모든 불편함을 토스터에서 해소해보세요! #1. 쉽고 간편한 링크 저장 링크를 클릭 몇 번으로 쉽고 빠르게 저장하세요! 링크를 복사만 해도 간편하게 저장할 수 있어요. #2. 빠르고 확실한 검색 찾고 싶은 링크를 홈 화면에서 빠르게 찾아보세요! 링크 뿐만 아니라 클립도 함께 검색할 수 있어요. #3. 필요할 때 리마인드주는 타이머 링크가 필요한 시점에 다시 읽을 수 있도록 리마인드 드려요! 타이머 설정만 해두면 토스..
-
[UIScrollView] 상단 커스텀 탭바를 만들어봅시다! (3) - 특정 위치 자동 스크롤 기능 추가
0️⃣ 이번 리팩토링의 목적! 어쩌다 보니 커스텀 탭바를 구현하면서 공부한 내용이 시리즈 형식으로 쓰이게 되었는데, 어느덧 세 번째 글을 쓸 차례이다. 사실 두 번째 글에서부터 이어진 내용이긴 한데, 이번 리팩토링은 각각의 뷰들이 커스텀 탭바의 각 탭들을 클릭했을 때 개별적으로 표출되도록 구현했던 화면을, 하나의 스크롤 뷰 위에 모두 포함시키고 그에 따른 커스텀 탭바의 자연스러운 액션 (스크롤 위치에 따라 탭바가 움직이는 기능 + 각 탭을 클릭했을 때 자동으로 해당 위치까지 스크롤되는 기능)까지 주도록 변경하는 것이 목적이었다. 이 리팩토링을 위해 앞에서 StickyHeader도 적용을 시켰던 것이었기에, 이번 글에서는 추가적으로 남은 탭바의 자연스러운 액션을 구현하도록 한 부분에 대한 설명을 이어서 써..
- 방문자수
전체 방문자
오늘 방문자
어제 방문자