목차
1. 이번주 목표 / 한 일
2. 배운점 / 느낀 점
3. 아쉬웠던 점
4. 총평
이번주 목표 / 한 일
1. 오픈소스 프로젝트 아이디어 결정하기
2. 멘토링
3. 기술 검토
오픈소스 프로젝트 아이디어 결정하기
숨가쁘게 달려온 7주간의 여정이 끝나고, 오픈소스 프로젝트가 시작되었다. 월요일에 팀이 결정되었고 어떤 아이디어로 오픈소스를 진행할지 논의했다. 각 자 진행하고 싶은 아이디어를 Notion에 남기기로 했다.
1. Date 라이브러리
- 이유 : Luxon이나, Moment 같이 이미 유명한 라이브러리들이 존재하지만 라이브러리를 만들어본다는 경험을 하기에 적당한 아이디어라고 생각했다. 팀원 중 한명은 가볍게 몇 가지 기능만 사용하려고 할때 유용하게 사용할 수 있을 것 같다는 의견도 있었다. 앞으로 3주 기간이 남아있긴 했지만, 실질적으로 작업할 수 있는 시간은 1주일 정도로 생각하는데, 선행적으로 학습해야할 부분이 많지 않고, 일정이 부족했을 때 제공되는 기능을 줄이면되기 때문에 부담스럽지 않게 진행하기 좋은 아이디어였다.
2. PR Convention 검증 CLI 또는 Git Action 라이브러리?
- 이유 : 팀원 중 프로젝트를 진행하면서 PR 규칙이 지켜지지 않는부분이 아쉬웠다고 생각했고, 이 부분을 해결할 수 있는 CLI를 만들자고 의견을 제시했다. Github API나 Commander에 대해서 학습해야했고, 적당히 도전적이면서 구현하면 쓰임새도 있을법한 아이디어라고 생각했다.
- 1차 회의에서는 이 아이디어로 프로젝트를 진행하기로 했으나 멘토님께 DM으로 의견을 물어봤을 때 멘토님도 사내에서 사용할 목적으로 코드 컨벤션까지 제공하는 프로젝트를 진행하고 있다고 하셨다. 도움 받을 수 있는 부분이 많아 쉽게 진행할 수도 있겠다 싶었지만, 아이디어가 겹쳐 다른 아이디어로 변경하기로 했다.
3. Dummy 데이터 생성기 ( 금요일 최종 결정 )
- 이유 : 테스트 DB에 더미 데이터를 생성할 때 일일이 생성하려면 꽤 귀찮은 작업이 된다. 사용해보지는 않았지만 Seeder라는 라이브러리가 해당 기능을 제공해주는듯 하다. ChatGPT를 활용해 더미 데이터를 생성했던 경험이 떠올라 해당 아이디어를 제시하게 됐다. ChatGPT를 사용할 때 Property에 대한 설명을 작성하고 더미 데이터를 생성해줘라고 하면 만족스러운 데이터를 생성해주는데 CLI형태로 이 기능을 제공한다면 나 역시도 업무에서 이 도구를 사용할 것 같았다. ChatGPT가 만족스러운 데이터를 생성해준다면 라이브러리를 사용하는 사람이나 만드는 사람이나 적은 노력으로 많은 효과를 얻을 수 있는 가성비 좋은 아이디어라 생각했다.
기술 검토
1. Commander
- CLI를 제공하기 위해서 Commander라는 패키지를 사용해야하는 듯 했다. 팀원 분이 간단히 실습해볼 수 있는 블로그를 공유해줘서 실습해 봤다. 대략 적인 사용법에 대해서 알게 되었으나 우리가 제공할 명령들을 정의하고 Property에 대한 설명, ChatGPT 토큰 권한 등을 어떤식으로 제공할지에 따라서 option들을 제공할 수 있을 것 같아 설계가 필요해 보였다.
2. NPM Registry에 패키지 등록
- Npm Repository에 패키지를 등록하는 방법에 대해서 실습해 봤다. 방법은 그렇게 어렵지 않았다.
- https://kdydesign.github.io/2020/08/28/npm-tutorial/
3. ChatGPT API
- OpenAI에서 API를 제공하고 있고, python용 SDK도 제공하고 있는 것으로 보인다. TypeScript용 SDK도 제공하는지 아직 찾아보지는 않았고, 제공하지 않는다면 API 문서보고 직접 요청들을 만들 생각이다.
- https://platform.openai.com/docs/introduction
- Model과 Column에 대한 설명을 어떠한 구조로 설계할지 아직 구체적으로 정해지지는 않았지만 대략적인 구성 설정파일을 만들어서 실습해봤을 때 괜찮은 결과를 얻을 수 있었다.
{
output_type: 'json',
require_count: 5,
columns: [
{
column-name: “name”,
column-description: “한국사람이름”,
max-length: "3",
unique: true
},
{
column-name: “age”,
column-description: “나이”,
max-length: “2”,
unique: false
}]
}
결과
주어진 설정값에 따라 "name"은 최대 3자리의 고유한(unique) 이름, "age"는 최대 2자리의 나이 정보를 가진 더미 데이터 5건을 JSON 형식으로 생성하겠습니다:
json
[
{
"name": "김지원",
"age": 28
},
{
"name": "이민호",
"age": 45
},
{
"name": "박서윤",
"age": 19
},
{
"name": "최은우",
"age": 32
},
{
"name": "정윤서",
"age": 26
}
]
위의 데이터는 "name" 컬럼에는 최대 3자리의 고유한 이름, "age" 컬럼에는 최대 2자리의 나이 정보를 가지고 있습니다. 각 데이터는 무작위로 생성되었습니다. 필요에 따라 데이터의 길이나 범위를 조절하거나 더 많은 데이터를 생성하려면 설정값을 수정하고 추가적으로 처리해주시면 됩니다. 주의할 점은 JSON에서 속성 이름은 따옴표(")로 묶여야 하며, 값은 따옴표를 사용하지 않아야 합니다. 이렇게 수정하여 사용하시기 바랍니다.
배운점 / 느낀점
빠른 피드백 요청
- 첫번째 아이디어에 대한 피드백 요청을 멘토링 시간까지 기다리지 않고, DM으로 먼저 요청했던 부분이 조금 더 나은 아이디어를 선정할 수 있었던 요인이었던 것 같다. 다른 사람의 의견을 들어보고 조금 더 많은 생각을 해볼 수 있었던 것 같다. 결과적으로 조금 더 흥미롭게 참여할 수 있는 아이디어를 조금 더 빨리 찾을 수 있게 됐던 것 같다.
특강 : 리뷰 문화
- 강사님은 10년 넘는 경력을 가지고 있었고, 배달의 민족과 무신사에서 팀을 매니지먼트하는 역할을 수행하신 경험이 있으신 것 같다. 발표 초반에 우리가 하는 업과 리뷰에 대해서 정의해보는 내용이 조금 특징적이었던 것 같다. 개발자라는 직업, 일상적으로 하는 업무들에 대해서 정의해는 것도 좋을 것 같다는 생각이 들었다.
- 무조건 우수한 기술이라고 적용하려기보다 우리에게 지금 당장 필요한 것을 적용시킬 것. 어떠한 이유든 우리는 기여를 하고 보상을 받는 직업인이라는 사실을 잊지 말라는 말이 공감되었다. 때때로 이거 유행한다더라, 이거 좋다더라하면 맹목적으로 우리에게 필요한 거야. 이거 적용하면 좋을꺼야 라는 생각을 하게 된다. 중요한 것들에 집중하기 위해 우리가 가진 리소스 내에서 효율적인 선택을 해야 한다.는 말이 공감 됐다.
동기부여
- 굉장히 열심히 사시는 분과 팀원이 됐다. 퇴사하시고, 성장을 위해 이런 저런 부분에 시간투자하시는 것 같은데 아이디어가 결정되고 직접 미리 기술 검토하고 먼저 알아보고 문제되는 것은 무엇인지 파악해서 공유해주는 등 활동을 열심히 하셔가지고 감사하기도 하고, 동기부여도 되는 것 같다.
아쉬웠던 점
- 학습 계획을 달성하지 못했다.
-> 구글에서는 이렇게 일한다.
-> GoF 디자인 패턴 ( ~ 4장 )
총평
뭔가 잘 되고 있는 느낌?. 열심히 하자
'교육 > 항해플러스' 카테고리의 다른 글
[항해플러스 후기] 11주간의 항해플러스 과정을 마치며 (0) | 2023.08.22 |
---|---|
[7주차]항해플러스 중간발표 회고 (0) | 2023.07.30 |