안녕하세요. 저는 소프트웨어 개발에 대한 끊임없는 도전 및 경험을 얻는 걸 좋아하며 이러한 경험을 바탕으로 하여 소프트웨어 개발이 어떤 것인지 그리고 추구해야 하는 가치가 무엇인지 전파하는 활동을 하고 있는 김종필 이라고 합니다.
View Github pages: https://jongfeel.github.io/Software/
내용이 조금 길더라도 관심 있으신 분은 끝까지 읽어보기를 권장합니다.
- What: 뭘 하고자 하는 건지
- How: 어떻게 진행하는 건지, 어떻게 하면 되는 건지
- Why: 왜 이런 일을 하는 건지, 왜 이런 식으로 진행을 하는 건지
에 대한 설명이 차례대로 있습니다.
저는 소프트웨어 개발에 어려움을 가진 분들을 돕고자 무료로 아래와 같은 활동을 하고 있습니다.
- 대학에서 진행하는 프로젝트 과정 멘토링
- 대학이 아니더라도 개인적 프로젝트 혹은 팀 프로젝트 개발 멘토링
- 신입 프로그래머 개발 스킬 및 소프트웨어에 대한 이해 멘토링
- 그외 소프트웨어를 개발함에 있어서 문제 인식 및 이해, 해결을 위한 실질적인 도움 멘토링
이유야 어떻든 결과적으로 저화 함께 진행하여 소프트웨어에 대한 전체적인 이해를 하고 그 이해를 바탕으로 올바른 소프트웨어 개발을 할 수 있는 능력을 키우는 것이 목적입니다.
여기서 소프트웨어 개발에 어려움을 가진 사람은 누군가 시킨 일을 "어떻게" 해결해야 하는지 고민하는 사람이 아닙니다. 내가 무엇을 더 알아야 소프트웨어를 개발하는데 도움이 되고 잘 할 수 있게 되는지, 지금의 내 방법으로도 잘 되고 있는데 내가 잘 모르는 다른 방법을 알면 뭐가 더 좋은지 알고 싶은 분들에게 도움이 되는 과정입니다. 최소한 자신이 공부를 할 의지를 가지고 있어야 제가 도움을 드릴 수 있습니다.
저는 현재 버넥트에서 AR 관련 연구, 제품 개발, 연구과제 프로젝트의 PM 및 시니어 개발자로 재직중에 있습니다.
- 이노베이션 아카데미(Seoul42)에서 비상근멘토로 활동 하고 있습니다.
- 여름 시즌에 소프트웨어에 관련된 책을 읽고 토론하는 학술회의를 개최했고, 매년 개최 예정입니다.
- 대학원생과 함께 WebRTC와 증강현실 기술이 적용된 논문의 연구를 진행하였습니다.
- ICT멘토링 한이음에서 대학생 프로젝트 멘토로 활동 진행하고 있습니다. 2020, 2021년도 계속 활동 진행중에 있습니다.
- 5월 부터 개인 멘토링 활동을 시작하여 여러 분야의 다양한 분들과 함께 소프트웨어 개발 프로젝트 멘토링을 진행하고 있습니다.
- 2016 ~ 2018년 까지 3년간 여러 개발 관련 네이버 까페 에서 C#과 관련된 무료 온라인 강의를 진행했습니다.
- 2015 ~ 2017년 까지 3년 간 몇 차례 C# 및 윈도우 개발 프로젝트 관련해서 개인 과외 활동을 진행했습니다.
- 2015년 이전 대외 활동은 없었지만 사내 개발 스터디나 신입 교육은 많이 진행했습니다.
대상은
- 컴퓨터 관련 전공 학생 프로젝트 멘토링 (한이음 혹은 개인팀)
- 개발 능력 향상을 원하는 주니어급 실무자 멘토링
- 개발자로 취업을 원하는 비전공자 멘토링
아래 링크들을 통해 저에 대해서 더 자세히 살펴보실 수 있습니다.
소프트웨어를 개발하는데 언어, 프레임워크, 개발툴은 선택 사항입니다. 원하시는 언어, 프레임워크, 개발툴 등등을 정해서 하실 수 있습니다. 제가 정해드리는 툴은 git 한가지이며, 이걸 공유할 수 있는 github 사용은 필수입니다. 만약 제가 사용하지 않았던 언어, 프레임워크를 정하시면 상대적으로 선생님이나 멘토 느낌이 아닌 동등한 실력을 가진 스터디원과 스터디 하는 느낌으로 진행 할 수 있는 긍정적 효과를 얻으실 수 있습니다.
돈을 받는 것도 좋지만 여러분이 소프트웨어를 개발하는게 어떤 건지 이해시켜 드리는게 더 중요한 가치이기 때문입니다.
- 여러분은 점차 소프트웨어를 이해하고 개발할 수 있는 능력을 얻게 됩니다.
- 저는 여러분들이 하려는 경험을 함께 공유하고 성장하는 경험하게 됩니다.
- 그러면 나중에 저와 함께 하는 다른 후배들에게 소프트웨어에 대한 이해를 더 잘 이해시켜 줄 수 능력을 키울 수 있는 값진 경험을 얻게 되겠죠.
- 어찌됐든 시간이 지나면 금전적 비용이 들진 않지만 서로 이득이긴 합니다.
저와 함께 만들고 싶거나 하고 싶은 주제, 도달 하고자 하는 목표, 해결 해야 하는 과제, 원하는 기술 스택 및 개발 툴 등에 대해 논의하고 구체화 하는 식으로 시작합니다.
주제 및 목표가 구체화 되고 문서가 나오면 목표를 달성하기 위해 요구사항 분석, 설계, 구현을 필요한대로 진행하는 걸 권장합니다. 특별한 문서 템플릿이나 작성 규칙은 없습니다. 정해진 규칙이 없다고 해서 어렵게 생각하지 마시고 필요하다고 생각되는 부분을 저와 함께 얘기하면서 진행하시면 되고, 많이 어려우신 분들에게는 제가 적절한 힌트나 가이드 등을 드립니다. 그래서 문서 작성할 때에는 서식이나 템플릿 보다는 내용 자체를 읽고 이해할 수 있는 수준으로 적어 주시는게 중요합니다. 사실 전 멘토의 역할에 충실해야 하기 때문에 실제 연구, 공부, 실험, 결과, 생각의 변화 등의 내용 공유는 여러분 스스로 진행해야 합니다.
위의 활동을 진행하면서 만든 모든 문서와 소스 코드, 추가 질문 사항, 문제 상황 등 공유할 내용 모두 github에 공유합니다.
github 내에 md(markdown) 파일이나 wiki에 적으셔도 되고 블로그나 기타 편한 방식의 포맷으로 작성하신 뒤 link를 알려 주셔도 됩니다.
github의 projects 탭의 칸반 보드 생성을 통해 관리합니다.
- To do
- In Progress
- Done
의 세가지 상태로 관리해 주시면 됩니다.
github의 issue 탭에 생성하고 공유합니다. 질문할 게 생기거나 문제가 발생하면 적어주시면 됩니다.
소스코드 리뷰가 포함될 수 있으며 필요하면 pull request를 통해 코드 리뷰를 진행합니다. 안해도 상관 없지만 코드 리뷰를 진행하기를 권장해 드립니다.
저와의 미팅은 github에 공유한 결과를 가지고 리뷰하고 계속해서 진행해 나가야 할 방향을 잡아주는 얘기를 하게 됩니다. 작성하신 문서, 코드 리뷰, 이슈 내용 위주로 진행하며, 따로 공부하신 부분 등 준비해 오신 모든 내용에 대한 리뷰를 진행합니다. 보통 1주일에 1회 1~2시간 내외로 진행하며 구글 행아웃을 통한 온라인 미팅으로 진행합니다. 필요시 종종 오프라인 미팅도 진행하지만 자주 진행하지는 않습니다. 공유해 주신 내용이 없다면 문서 및 코드 공유가 이루어진 시점 후에 협의된 미팅 일정대로 진행이 가능합니다.
주기적인 리뷰 미팅이 진행되므로 다음 리뷰 미팅때 까지 얼마만큼의 시간을 사용할지 계획하고 실천합니다. 제가 정해드리는 건 아니고 스스로 실천 가능한 목표를 정하시고 체크만 해주시면 됩니다. 매번 리뷰 미팅 때 마다 달성률을 체크하고 조절할 수 있게 가이드 해 드립니다.
제가 기술적인 강의를 하는 것도 아니고, 과외를 하는 것도 아닌데 어떻게 내 실력이 늘 수 있는지 궁금할 수도 있을 겁니다. 물론 기술적인 걸 알게 되면 실력이 느는 것이라고 느끼실 수도 있지만, 소프트웨어를 개발하는 실력이라는 것은 꼭 그런 기술적인 지식만을 요구하지는 않습니다. 기술적인 지식이 아닌 "실력"이라는 키워드를 이야기 하기 위해서는 누군가와의 "소통"을 통해 생각의 폭을 넓혀야 하고, 나의 활동에 대해 지속적인 리뷰를 동반한 "피드백"이 필요합니다. 그리고 현재보다 더 나은 나의 모습을 위한 "기록"을 하는 훈련을 해야 하며, 더 나아가서 내가 성장했다는 걸 느낄 수 있는 "회고(깨달음)"의 활동이 적절히 동반되어야 "실력"이 늘었다고 할 수 있으며 "성장"을 할 수 있다고 생각합니다.
궁극적으로 저는 그 성장을 위한 가이드를 해 드린다고 생각하시면 됩니다. 그러면 당연하게도 내 "실력"이 늘었다는 걸 작성했던 문서들을 통해 객관적으로 아실 수 있으며, "성장"했다는 것 역시 자연스럽게 느끼게 됩니다.
- 류태호 교수님의 성적 없는 성적표 책을 읽고 적용하고 있습니다.
- 역량 중심 교육에 필요한 멘토링
- 김창준님의 함께 자라기 책을 읽고 적용하고 있습니다.
- 난이도에 맞는 주기적인 리뷰와 피드백, 신뢰 관계의 유지 등을 실천하고 있습니다.
- 소프트웨어 장인과 관련된 책을 읽고 기술적으로 배울 수 없는 장인정신에 대해서 얘기해주고 소프트웨어를 개발하는 올바른 원칙과 마음가짐을 가질 수 있게 얘기해 드리고 있습니다.
이 과정의 목표는 소프트웨어를 이해하고 올바른 방향으로 개발할 수 있는 능력을 키우는 것이 목적입니다. 아래와 같은 목적을 가지신 분은 저와 함께 해 봤자 도움이 되지 않는다는 걸 깨달으실 수 있습니다.
- 자신이 공부해서 알아야 하는 걸 제게 알려달라는 식의 단편적인 코딩 질문을 하시는 분
- 그런 식으로 하는 건 공부가 아닙니다.
- 본인의 문제 해결 능력을 키워야 하는 중요한 순간을 다른 사람이 대신해준 것 뿐이니까요.
- 당연하게도 본인의 문제 해결 능력이 좋아질리가 절대 없습니다.
- 학교 과제나 회사 실무 문제를 저한테 시켜서 빨리 해결하고 싶으신 분
- 여태까지 경험상 그런 일들이 빨리 해결되는 일이 많지 않았습니다.
- 본인의 역량을 천천히 더 키우신 후에 해결해 나가세요.
- 사람을 고용해서 해야 할 일을 절 시켜서 하시려는 분
- 빨리 다른 사람을 구해서 합당한 댓가를 지불하고 일을 시키세요.
- 좋은 결과가 있기를 희망합니다.
- 아무 목적 없이 저와 함께 하면 뭔가 잘 알게 될거라는 기대를 가지신 분
- 스스로 아무것도 하지 않으면 아무일도 일어나지 않습니다.
- 제가 문제 같은 걸 주고 풀라고 시켜서 그대로 하면 실력이 향상 될 거라 기대하시는 분
- 전 문제를 내서 풀라고 시키고 검사를 해주는 사람이 아닙니다.
- 일정: 저와 일정을 변경하려면 반드시 일정 전에 연락해서 일정 취소 및 변경을 요청해 주세요. 그래야 일정 관리가 됩니다.
- 질문: 사소하고 쓸데없고 바보같아 보이는 질문이라도 부끄러워 하지 않고 질문해 주세요. 처음 배우는 사람은 모르는게 당연합니다.
- 공유: 진행한 모든 정보는 최대한 공유할 수 있게 공개로 하고, 문서 작업을 해 주세요. 저와 리뷰를 위해 꼭 필요합니다.
아래 노션 링크에서 구글 캘린더와 연동된 제 공개 멘토링 스케줄을 확인하실 수 있습니다.
- 자료구조 및 알고리즘 스터디, 코딩 테스트 문제 풀이
- 2020-10 ~ 현재
- 1~2주에 한번씩 스케줄 없는 날 23:00 온라인 미팅
- CodingTest
- 개발툴: 언어에 따라 다양. Visual Studio Code, Clion, ...
- 프레임워크: 언어에 따라 다양하지만, 특별한 프레임워크는 사용하지 않음
- 언어: C++, Python, Java
- 시작하게 된 계기
- 2020 한이음 프로젝트를 진행했던 팽대원님의 요청으로 자료구조 및 코딩 테스트 공부 진행
- 팽대원님의 같은 동아리 후배인 정세영님을 합류 시켜서 같이 진행
- iOS swift 스터디 겸 togather 앱 개발
- 2021-09
- 첫 온라인 미팅 후 주기적인 미팅을 가지기로 함
- ToGather
- 개발툴: xCode
- 프레임워크: 없음
- 언어: Swift
- 시작하게 된 계기
- Javascript 책 읽기 모임에서 알게 된 분
- 이후 메일 연락을 통해 모각코 참여 의사를 주셨고, 얘기를 더 하다가 작은 개인 프로젝트 멘토링을 시작하게 됨
- 2021 한이음 프로젝트 자율형
- 멘티
- 김수현: 서경대학교 컴퓨터과학과 4학년
- 김민호: 순천향대학교 환경보건학과 2학년
- 유상욱: 성결대학교 미디어소프트웨어과 4학년
- 정용현: 용인송담대학 컴퓨터게임과 2학년
- 2021-04 ~ 2021-11
- 필요시 오프라인 미팅 및 온라인 미팅
- Repository
- Github (main activity): https://github.com/SangwookYoo/MultilingualLearningVR-unity
- Gitlab (hanium): https://lab.hanium.or.kr/21_HF046/21_hf046
- 개발툴: Unity, Visual Studio
- 프레임워크: Unity, SteamVR
- 언어: C#
- 2021 한이음 프로젝트 학점연계형
- 멘티
- 이채은: 덕성여자대학교 IT미디어공학과 4학년
- 김두리: 덕성여자대학교 IT미디어공학과 4학년
- 이다연: 덕성여자대학교 IT미디어공학과 4학년
- 2021-04 ~ 2021-11
- 필요시 오프라인 미팅 및 온라인 미팅
- Repository
- Github (main activity): https://github.com/ErigoLee/BodyCureBotVR
- Gitlab (hanium): https://lab.hanium.or.kr/21_HG028/21_hg028
- 개발툴: Unity, Visual Studio
- 프레임워크: Unity, SteamVR
- 언어: C#
- 2021 한이음 프로젝트 자율형
- 멘티
- 심우정: 상명대학교 스마트정보통신공학과 3학년
- 마혜준: 상명대학교 스마트정보통신공학과 3학년
- 양하은: 상명대학교 스마트정보통신공학과 3학년
- 허예지: 상명대학교 스마트정보통신공학과 3학년
- 2021-04 ~ 2021-11
- 필요시 오프라인 미팅 및 온라인 미팅
- Repository
- Github (main activity): https://github.com/ShimWooJeong/AR_experiment
- Gitlab (hanium): https://lab.hanium.or.kr/21_HF279/21_hf279
- 개발툴: Unity, Visual Studio
- 프레임워크: Unity, ARCore
- 언어: C#
- 2D Action PRG 게임 제작
- 2021-01 ~ 2021-07
- 매주 평일 가능한 시간에 19:00 오프라인 미팅
- JustFight
- 개발툴: Unity, Visual Studio, Visual Studio Code
- 프레임워크: Unity, .NET 5
- 언어: C#
- 시작하게 된 계기
- 신입 개발자로 Unity 업무를 함에 있어서, 개인 프로젝트에 연관시켜서 게임 제작 시작
- 2021 한이음 프로젝트 자율형
- 멘티
- 팽대원: 경기대학교 전자공학과 4학년
- 기지연: 경기대학교 전자공학과 4학년
- 임아름: 경기대학교 전자공학과 4학년
- 2020-12 ~ 2021-03
- 필요시 오프라인 미팅 및 온라인 미팅, 비교적 매주 진행하려고 함
- Repository
- 개발툴: Vscode
- 프레임워크: React, Node, MySQL, Azure, GCP
- 언어: Javascript, Html, CSS, SQL
- 시작하게 된 계기
- 2020년 한이음 프로젝트 완료 이후 다시 멘토링 해준 케이스
- 학교 학기중 프로젝트 과제를 사전에 마치면서 한이음 프로젝트도 한꺼번에 방학중에 미리 준비하는 훌륭한 자세의 학생들의 프로젝트
- 2021 한이음 프로젝트 자율형
- 멘티
- 전승현: 대림대학교 모바일인터넷 2학년
- 박세훈: 대림대학교 모바일인터넷 3학년
- 안진홍: 대림대학교 컴퓨터정보학부 2학년
- 2021-04 ~ 2021-07
- 필요시 오프라인 미팅 및 온라인 미팅
- Repository
- Github (main activity): https://github.com/jeonseunghyeon/ppojeong-ARProgram
- Gitlab (hanium): https://lab.hanium.or.kr/21_HF401/21_hf401
- 개발툴: Unity, Visual Studio
- 프레임워크: Unity, ARKit
- 언어: C#
- 중간 보고서 미제출로 프로젝트 중단
- StarCraft 테란 유닛을 가지고 OOP 모델링 및 unit test 경험
- 2021-03 ~ 2021-07
- 4주에 한번 목요일 23:00 온라인 미팅
- StarCraftOOP
- 개발툴: Unity, Visual Studio
- 프레임워크: Unity
- 언어: C#
- 시작하게 된 계기
- 객체지향의 사실과 오해라는 책 리뷰를 한 후에 실제 프로젝트를 통해 OOP 개념과 unit test를 경험해 보기 위해 시작함
- okky를 따라 만든 dokky 프로젝트 진행
- 프로젝트는 태원님이 거의 완성한 상태고 마무리 단계에서 리뷰 미팅 진행 중
- 2019-09 ~ 2021-01, 무기한 중단 상태
- 2주에 한번씩 화요일 23:00 온라인 미팅
- Dokky
- 개발툴: Eclipse
- 프레임워크: Spring 5.0.7
- 언어: Java, javascript, SQL 등
- 시작하게 된 계기
- 네이버 까페, 빵형의 코드가 궁금해에서 2019년 오프라인 모임을 통해 첫 만남
- 거기서 여러 얘기를 나누다가 개인 멘토링을 무료로 한다는 소개를 하고 명함을 드림
- 그날 바로 문자 메시지로 멘토링 하겠다는 의사를 줬고 시작하게 된 케이스
- 미팅
- 온라인: 36회
- 오프라인: 5회
- 후기
- 소프트웨어 개발에 필요한 여러가지 개념들에 대해 적용해 보고 많은 얘기를 할 수 있는 좋은 계기
- 기존 사이트의 클론 형태이지만 거기에 더해서 필요하다고 생각하는 기능인 채팅 및 결제 포인트 기능을 추가해 만들려고 하는 기능과 그 구현이 자연스럽게 이루어짐
- 자료구조 및 알고리즘 스터디, Do it! 자료구조와 함께 배우는 알고리즘 입문 C 언어 편 책으로 문제 풀이 진행
- 2020-12 ~ 2021-02
- 매주 금요일 23:00 온라인 미팅
- C algorithm
- 개발툴: Visual Studio Code 혹은 터미널
- 프레임워크: 없음
- 언어: C
- 시작하게 된 계기
- 2020 한이음 프로젝트를 진행했던 팽대원님의 동아리내에 나의 활동을 전파했고, 같은 전자공학과 후배들이 알고리즘 공부를 위해 멘토링 요청
- 미팅
- 온라인: 3회
- 후기
- 알고리즘 공부는 사실 멘토가 필요가 없을 수 있으나 코드리뷰를 조건으로 진행함.
- 하지만 코드리뷰가 많이 진행되지 않아 아쉬움이 있었고, 각자 빠른 진행을 위한 문제풀기 위주였음
- 롤체스(lolchess.gg)와 같은 사이트 구축, 일부 기능만 구현
- 2020-05 ~ 2021-02
- 2주에 한번씩 목요일 23:00 온라인 미팅
- LolChess
- 개발툴: Visual studio code
- 프레임워크: None
- 언어: Javascript
- 시작하게 된 계기
- 2019 한이음 프로젝트를 진행했던 조승현님의 누나로 승현님이 개인 멘토링 해줄 수 있냐는 부탁을 따로 함
- 이후 승현님에게 멘토링 페이지를 잘 설명해 주고 메일을 따로 달라고 연락 줌
- 약 3주 후 혜빈님께 멘토링 하겠다는 메일을 받고 받고 진행
- 미팅
- 온라인: 7회
- 오프라인: 1회
- 후기
- 게임을 좋아해 관련된 사이트 클론 구현으로 시작한건 좋았으나 워낙에 기본적인 것들을 배워 나가느라 많이 진행하지 못함
- 기간은 오래 진행했으나, 실제 진행한 시간이 많지 않음. 그래도 문제점 리뷰 및 github 중심의 사용 방법에 대해서는 어느 정도 숙지
- 피드백 기간이 너무 길었고 그 동안 개발에 대한 생각의 변화로 멘토링을 중단하고 혼자 개발 진행하는 것으로 변경
- 유기묘를 위한 검색/등록 기능이 추가된 냥터레스트 사이트 프로젝트
- 조윤우님 + 정혜인님 팀
- 2019-04 ~ 2021-01
- 정혜인님
- 2020년 2월 취업하여 5월 까지 잠시 중단
- 2020년 6월 부터 합류 10월 까지 진행
- 2020년 11월 부터 잠시 휴식 후 프로젝트 종료까지 진행 못함
- 조윤우님
- 2020년 8월 취업하여 프로젝트 종료까지 진행 못함
- 2주에 한번씩 수요일 23:00 온라인 미팅
- Nyangterest
- 개발툴: Visual Studio Code
- 프레임워크: React.js 16.8.0, Node.js, MySQL
- 언어: Javascript, SQL
- 시작하게 된 계기
- 조윤우님은 따로 개인 멘토링으로 프로젝트 진행 중인 상황에서
- 윤우님이 알고 있던 혜인님과 함께 프로젝트 진행을 하고 싶다고 해서 혜인님을 참여 시켰고
- 함께 팀으로 진행하게 된 케이스
- 미팅
- 온라인: 프로젝트 단위 총 35회
- 1st ~ 21th: 조윤우 + 정혜인님 동시 진행
- 22th ~ 28th: 조윤우님 단독 진행
- 29th ~ 31th: 조윤우 + 정혜인님 동시 진행
- 32th ~ 35th: 정혜인님 단독
- 오프라인: 5회
- 기타 오프라인: 3회 (home coming day 2019, 2020, 회고 모임)
- 온라인: 프로젝트 단위 총 35회
- 멘토 신청 외의 문의 역시 자유롭게 [email protected] 으로 보내주세요.
- 1일 이내에 답변 드립니다.
- 제 메일 주소인 [email protected] 으로 하고 싶은게 뭔지 내용을 적어서 보내주세요.
- 1일 이내에 메일 회신이 가며, 사전 인터뷰를 진행합니다.
- 사전 인터뷰를 통과 하시면 미팅 일정을 잡아 온라인 혹은 오프라인으로 일정 및 주제, 방향등을 정해서 진행 합니다.
- 멘티가 되신 분은 git을 설치하고 github.com 를 통해 내용을 공유해야 하므로 github 계정이 없으시면 이번 기회에 하나 만드는걸 추천 드립니다.
- 저를 믿고 시간을 투자하여 공부를 시작하세요. 저는 여러분을 위해 특정 프로그래밍 언어나 프레임워크 사용법 외에도 많은 것을 알려드릴 준비가 되어 있습니다.