미리보기
기본 정보
성실함은 기본이고, 어느 곳에서든 누구보다 빠르고 자연스럽게 녹아들어서 팀원들의 활력을 복돋아주는 인간 카피바라 박요셉입니다!
기술 스택
Flutter, React Native, JavaScript, React, Next.js
프로젝트
GoodWishes
개인
2024.03. ~ 2024.08.
플레이스토어에 출시된 플러터 앱입니다. 평소에 굿즈 모으기를 취미로 두고 있던 중, 많은 굿즈들을 목록화하고 앱으로 쉽게 관리할 수 있으면 좋겠다는 마음으로 제작을 했습니다. 1인 개발이다보니 여러 방면으로 어려운 점이 많았습니다. 플러터 첫 사용이다보니 기본적인 지식을 공부하는 데에 많은 시간이 들었고, UI 설계와 이미지 및 아이콘 작업, 기능 설계, 코딩, QA 테스트를 전부 직접 해야 했습니다. 첫 프로덕션 앱 출시이다보니 다양한 예외처리에 골머리를 않기도 했고, 사용자들의 요청사항을 어떻게 들어줄지에 대해서도 수없이 고민했으며, 그렇게 만든 기능들이 권한 문제 때문에 리젝을 당해 폐기되기도 했습니다. 하지만 3달에 걸쳐 꾸준히 진행된 노력은 결실을 맺었고, 현재 플레이스토어에서 배포되고 있습니다.
Ridi-Journals
개인
2023.03. ~ 2023.03.
리디북스 앱의 독서노트를 따로 저장해서 보고싶다는 열망을 가지고 제작한 1인 개발 앱입니다. 크롬 확장프로그램이며, TS와 ReactJS를 사용했습니다. 공식 스토어에서 배포 중입니다. 리디북스의 독서노트 글귀들을 크롤링한 후, 보기 편하게 정제하고 클립보드에 저장합니다. 작게나마 도움을 주는 앱을 만들었다는 점과 출시를 경험했다는 점에서 의의가 있습니다.
포트폴리오
자기소개
선택한 분야에 관심을 갖게 된 계기와 자신 있는 이유
프론트엔드 개발자는 화면 너머에 감춰진 세계와 사용자들의 내면 세계를 연결해주는 오작교입니다.
인간은 다른 동물과 비교해서 특별한 점이 있습니다. 지구 세계를 벗어나 인터넷이라는 눈, 코, 입 만으로는 인식할 수 없는 메타세계의 주민이라는 점입니다. 디지털 기기는 단순히 빠른 계산기나 저장장치를 넘어, 거대한 웹 세계의 시민이 될 수 있는 주민등록증이 됩니다. 화면 너머에 감춰진 세계는 실제 세계와는 차원이 다른 방식으로 사람과 사람을 연결하고, 사람은 이 안에서 내면의 욕구를 충족시키며 새로운 자아를 설립하는 능력을 가집니다. 하지만 두 세계 사이에는 화면이라는 거대한 장벽이 세워져 있습니다. 디지털 기술이 빠르게 발전하고 사람들의 삶을 개선시킬지라도, 모두가 이 혜택을 누릴 수는 없습니다. 화면의 벽으로부터 소외받은 자들이 남아있기 때문입니다. 전자기기가 익숙하지 않은 사람부터 장애를 가진 사람까지 많은 사람들이 혜택을 누리지 못한 채 웹 세계의 시민권을 포기합니다. 이때, 웹 개발자와 앱 개발자는 인터페이스라는 다리를 지어 메타세계의 시민이 되는 기회를 제공합니다. 사용자들의 요구와 경험을 깊이 이해하고, 적절한 다리를 세워서 함께 누릴 수 있게 해줍니다. 이처럼 기술발전으로부터 소외된 사람을 구조하고, 웹 세계의 시민이 되기 위한 다리를 건설해주는 숭고한 과업에 매력을 느껴 지원을 하였습니다.
철학과라는 한계, 코로나의 한계, 군복무의 한계를 이겨내기 위해 여러 노력을 해왔습니다.
우선 IT 분야 복수전공을 통해, 자료구조, 알고리즘 등 CS 지식 공부에 매진했습니다. CS 지식은 프로그래머의 근간을 이룬다고 생각합니다. 작성한 코드가 어떤 방식으로 돌아가는 지를 알아야, 적절한 설계와 제작이 이루어진다고 보았기 때문입니다. 하지만 문과의 입장에서 컴퓨팅 사고를 도전하는 것은 쉽지 않은 일이었습니다. 컴퓨터의 구조, 이진법과 수학 공부, OOP의 객체 클래스를 이해하는 것에 많은 어려움을 느꼈습니다. 하지만 노력은 배신하지 않았고, 11개의 IT 전공 과목에서 전부 A 학점을 받았습니다.
2020년부터 지금까지 꾸준하게 개인 공부를 하고 있습니다. 코로나와 군복무는 사람과의 만남을 차단해버렸습니다. 코딩을 공부하기 위한 학원이나 스터디를 다닐 기회를 주지 않았습니다. 그래서 udemy에서 제공하는 강의를 구입하여, 꾸준한 공부를 했습니다. Flutter, 기본 JavaScript, ReactJS, React-Native, TypeScript를 이수하였고, 남들에게도 설명할 수 있을 정도로 이해해보자는 취지로 개발 블로그를 시작하여 직접 강의를 작성하고 있습니다.
마지막으로 개인 프로젝트를 진행하면서 개발의 경험을 쌓고 있습니다. 공부한 기술을 가지고 작게나마 세상에 기여하는 앱을 만들어보고 싶었습니다. React를 이용해서 리디북스의 형광펜 글귀를 쉽게 정리해주는 크롬 확장프로그램 ‘Ridi-Journal’를 출시했고, Flutter를 이용해서 각종 굿즈와 위시리스트를 정리하고 관리하는 모바일 앱인 ‘GoodWishes’를 플레이스토어에 출시했습니다.
한계에는 ‘패배의식’으로부터 비롯된 거짓 한계가 포함되어 있습니다. 거짓 한계에 속지 않고 끊임없이 세계를 확장해나가는 집념과 독기로, 빠르게 변화하는 세상에 공헌할 수 있는 기회를 주시길 기대합니다.
가장 열정을 가지고 임했던 프로젝트의 수행 과정과 결과
가장 열정을 가지고 임했던 프로젝트는 숭실대 창업지원단 소속 ’모두의 하루‘ 앱 개발 프로젝트 였습니다. 이 활동을 하면서 진정한 실력은 올바른 삶의 자세에서 형성됨을 알았습니다.
숭실대학교는 학생들이 모여 창업 프로젝트를 진행하는 것에 전폭적인 지원을 합니다. 알던 선배가 습관 길들이기 커뮤니티 ’모두의 하루‘라는 앱을 기획해서 통과가 되었고, 실현하는 단계에서 개발자를 구하던 중 저에게 제의를 했습니다.
RN 개발자 제안을 받았을 때 수많은 고민과 기도를 했습니다. 각종 여행과 외부 활동을 통해서 새로운 사회를 경험해본다는 것, 특히 스타트업을 도전한다는 것은 높은 수준의 실력이 필요하다는 것을 알았기 때문입니다. 그런 실력이 갖춰져 있지 않았지만 새로운 경험을 해보고 싶었기에 제안을 받았습니다. 처음에는 팀원들의 정보를 듣고 놀랐습니다. 영어 실력, 외부 수상 경력, 개발 경험이 화려했습니다. 개발자이지만 코딩은 전혀 할 줄 몰라서 막막했고, 이들에게 누가 되지 않기 위해 모든 것을 걸어야겠다고 다짐하고 실천에 옮겼습니다. 유튜브, codecademy, 도서관의 온갖 서적들을 전부 찾고 잠을 거르면서 공부했습니다.10일만에 개발 인력으로 투입이 되었고, 뛰어난 동료들에게 매일 혼나고 배웠습니다. 노력은 결실이 되어 개발 진도에 기여를 하는 어엿한 일원이 되었습니다.
그런데 지각을 하고, 개인주의적인 모습을 보이고, 자기 사정만 챙기는 모습들이 모든 팀원들에게 보였고 갈수록 심해졌습니다. 이에 대해 문제제기를 할 필요가 있다고 느꼈습니다. 경력 없는 학생들끼리 모인 팀이다 보니 프로들보다 더 열심히 해도 모자랄 상황에 이런 모습을 보인다는 것은 앞으로 여기에는 희망이 없다는 것을 알았기 때문입니다. 그 방법으로 무엇이 있을지 고민을 했습니다.
첫 번째는 문화에 대해 이야기하는 시간을 주도했습니다. 리더가 챙기지 못하는 부분을 도와주고자 따로 문화를 챙기는 시간을 만들자고 건의하고 진행했습니다. 팀원들은 이에 대해 수긍하고 다짐했지만, 작심삼일이었습니다.
두 번째는 꾸준히 최선을 다하는 모습을 보여주는 것이었습니다. 당장은 대화로는 해결이 안 될 것 같다고 판단을 했고, 좋은 모습을 계속 보이면 남들도 언제가는 자극을 받을 거라는 생각을 가졌습니다. 장수연 부은행장님을 롤모델 삼아 아침 7시에 출근을 해서 밤 10시에 퇴근을 하고 (원래는 10시 출근 10시 퇴근), 아침 일찍 나와 업무 공간을 싹 청소하고 업무 일지를 정리하고 다른 팀원들의 일들도 조금씩 손을 봐줬습니다. 하지만 팀원들은 반대로 심각해져갔고, 이로 인해 협업이 잘 이루어지지 않아서 일의 진행에 문제가 발생하는 사태까지 벌어졌습니다.
세 번째는 막내(나)가 선배들에게 따끔한 말을 하는 것이었습니다. 심각해지고 있는 상황 속에서도 꾸준히 최선을 다하다 보니 명분과 실력이 저절로 쌓였었습니다. 저를 제외한 모두가 12시 넘어서 출근을 하는 상황이 발생하였고, (2시간 이상 지각) 그동안 팀의 갈등관리와 분위기 유지를 담당하고 있던 저는 그 수간에는 아주 무서운 사람으로 변했었습니다. 깜짝 놀란 팀원들은 깊은 반성의 시간을 가졌고, 잠깐의 변화가 있었습니다. 팀원의 결속력을 다져 Othon 아이디어 해커톤에 도전을 했습니다. 하나된 팀원들은 ‘모두의 하루’ 아이디어를 잘 정리해서 최종 발표까지 진행하였고, 12개 팀 중 ‘3등’ 수상을 해냈습니다.
그러나 Othon 대회를 마치고 나니 다시 문제가 나타났습니다. 리더는 ’새로운 개발자를 더 뽑아서 기간을 맞춘다‘라며 문제를 회피했고, 팀원들은 여전히 지각을 버릇처럼 했습니다. 결국, 최종 심사에서 다른 팀들의 수준에 못 미치는 결과물을 내보였고, 그대로 첫 개발의 여정은 끝이 났습니다.
팀원들의 화려해보이는 겉 실력은 올바른 삶의 자세 없이는 별 효용이 없었습니다. 반대로 개발 실력이 매우 부족했음에도 삶의 자세에 경각심을 갖고 노력하다보니 계속 성장해나가는 모습을 발견할 수 있었습니다. 또한, 올바름에 입각하여 팀이 나아가는 방향을 진단하고, 이에 대해 문제의식을 느끼고, 해결방안을 마련하고 실행하는 과정을 경험할 수 있었습니다. 이를 통해서 삶의 기본자세가 갖춰졌을 때 어떤 일이든지 해낼 수 있겠다는 확신이 생겼고, 진정한 실력은 올바른 자세에서 나온다는 것을 알았습니다.
대표적인 개발 경험이나 희망 분야 관련 과제 성과, 활동
GoodWishes
플레이스토어에 출시된 플러터 앱입니다. 평소에 굿즈 모으기를 취미로 두고 있던 중, 많은 굿즈들을 목록화하고 앱으로 쉽게 관리할 수 있으면 좋겠다는 마음으로 제작을 했습니다. 1인 개발이다보니 여러 방면으로 어려운 점이 많았습니다. 플러터 첫 사용이다보니 기본적인 지식을 공부하는 데에 많은 시간이 들었고, UI 설계와 이미지 및 아이콘 작업, 기능 설계, 코딩, QA 테스트를 전부 직접 해야 했습니다. 첫 프로덕션 앱 출시이다보니 다양한 예외처리에 골머리를 않기도 했고, 사용자들의 요청사항을 어떻게 들어줄지에 대해서도 수없이 고민했으며, 그렇게 만든 기능들이 권한 문제 때문에 리젝을 당해 폐기되기도 했습니다. 하지만 3달에 걸쳐 꾸준히 진행된 노력은 결실을 맺었고, 현재 플레이스토어에서 배포되고 있습니다.
모두의 하루
첫 개발 프로젝트입니다. 숭실대 창업지원단 소속팀인 ‘모두의 하루`의 RN 개발자로 참여했습니다. 리더에게 받은 스토리보드를 안드로이드, 아이폰 기기에 구현하는 업무를 담당했습니다. 앱의 기능 중 하나인 습관 동아리를 만들고 활동 내역을 공유하는 SNS 기능을 구현하기 위해, 파이어베이스에 만든 DB를 앱과 연결하여, 실시간으로 동아리와 습관 정보를 불러오고 수정할 수 있는 기능을 제작했습니다. 안드로이드와 아이폰 간의 화면크기와 구성 차이에 대응하기 위해, OS에 맞춰 UI 배치와 크기 조절을 담당했습니다.
리디저널
리디북스 앱의 독서노트를 따로 저장해서 보고싶다는 열망을 가지고 제작한 1인 개발 앱입니다. 크롬 확장프로그램이며, TS와 ReactJS를 사용했습니다. 공식 스토어에서 배포 중입니다. 리디북스의 독서노트 글귀들을 크롤링한 후, 보기 편하게 정제하고 클립보드에 저장합니다. 작게나마 도움을 주는 앱을 만들었다는 점과 출시를 경험했다는 점에서 의의가 있습니다.
개인 블로그, 깃허브, 백준
블로그에는 프로그래밍 과정과 설명들을 담아놨습니다. 누구나 보기 쉽게 작문하고 카테고리를 나눠 정리했습니다.
깃허브는 지금까지 작성해온 모든 코드들이 담겨 있습니다. 위 프로젝트들의 코드와 개인공부 내용, 전공수업 내용, 알고리즘 풀이들이 있습니다.
꾸준히 푼 백준은 어느덧 골드1을 달성했습니다. 온전히 혼자서 푼 게 아니라 레퍼런스를 두고 푼 탓에 뻥튀기 랭크라는 한계가 있습니다. 문제를 풀 때, 수학 지식이 부족한 것을 뼈져리게 느낍니다. 추가로 공부할 예정입니다.