스파르톤 참가
처음 홍보물을 보고, 정말 기획을 잘했다라는 생각을 했다. 기념품과 참신한 기획력으로 스파르톤을 진행하는 것을 보고 참가 신청을 진행했고, 좋은 추억으로 남을 것 같다. 앞으로 이러한 이벤트가 있으면 참여을 해야겠다는 생각이 들었다! 이제 내가 참여한 경험을 시간별로 나누어 일지를 적어보려고 한다.
스파르톤 도구 활용내역 - ZEP
23:00 ~ 06:00 사용일지
2022. 09. 18 23:00 ~ 01:00
광장에 모여 간단하게 스파르타 톤 소개를 진행했다(23~24). 테이블에 앉아서 간단하게 조를 짜서 다 같이 모여 간단한 자기소개와 팀 조명을 짰다. 쉽지 않은 밤샘코딩에 부담감이 줄어들 것 같은 현장감을 느낄 수 있었다. 다음 스파르톤도 참가하면 괜찮겠다라는 생각이 들었다. 우선, 하고싶은 것과 스파르톤에서 제공하는 무료강의를 해야겠다라는 생각이 우선 들었고, 목표는 두가지로 설정을 진행하기로 했다.
- 스파르톤에서 제공하는 데이터 분석 분야를 강의를 먼저 듣고, 실습해보기.
- 깃허브 오픈소스 프로잭트에 기여하기. (sidebar.nvim - 특정 부분 소스 코드 수정)
2번 사항은 사실 오늘안에 끝낼 수 있을지 싶다. 우선 해보기로..
2022. 09. 18 01:00 ~ 02:00
python 라이브러리(pandas, matplotlib)을 가져온 뒤, 데이터 값을 x, y 축 값을 넣고, pandas를 이용해서 데이터 정렬하고, 시각화하는 것을 목표로 진행했다.
def barGraph():
y = [1, 10, 20, 30, 20, 50, 60]
x= ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]
plt.title("7day importance", fontsize=15)
plt.xlabel("importance")
df = pd.DataFrame(
dict(
day=x,
values=y
)
).sort_values("values")
plt.bar('day', 'values', data=df, color='red')
plt.show()
barGraph()
생각보다 시간이 오래걸렸다. 데이터를 어떻게 표현하고, 차트를 어떻게 그려야할지, 막대그래프로 해야할지, 선 그래프로 해야할지 부터 고민을 진행했고, 막대그래프로, 그리고 생각보다 데이터 표현이 잘된 것 같아서 느꼈던 것은 파이썬으로 짧은 코드를 이용하여 쉽게 표현할 수 있는 것을 느꼈고, 나중에 기회가 된다면 의미있는 실제 데이터를 가져와서 분석을 해보는 것도 좋겠다라는 느낌이 들었다.
2022. 09. 18 02:00 ~ 03:00
이벤트 게임
스파르톤에서 주최한 다양한 게임이 있었다. 처음에는 OX 퀴즈를 진행해서 다양한 상품(?, 무언가) 주는 것 같았다. 그 중 제일 재밌었던 것은 똥피하기 게임이다. 하늘에서 떨어지는 똥을 피해서 끝까지 살아남는 사람이 우승한다. 정신을 차리고 게임해야해서 끝나고 나니 잠이 확 깼다. 똥피하기도 우승을 진행했다. 잠을 확실이 깨고 나니 이제 남은 업무를 해야할 일을 진행해야 할 것 같았다. 기획을 잘한 듯 하다.
2022. 09. 18 03:00 ~ 04:00
LUA VIM 옵션을 알아보는 시간을 가지고, 계획표를 구체화하자.
우선 내가 수정해야할 부분을 먼저 확인하는 시간을 가졌고, 오픈소스 sidebar.lua는 루아로 쓰여져 있기 때문에, 루아 문법과, 루아로 VIM을 작동하는 방법을 알아야 했다. LUA 문법은 이전에 봐왔던 것이기 때문에 코드 분석할 때, 모르는 부분을 구글링해서 판단하는 방법으 진행하기로 정함, 내가 건들여야 할 부분은 lua로 nvim에서 user 인풋을 받아서 디렉토리를 생성하는 부분을 수정해야 한다. 루아 가이드를 먼저 읽고 시작하는게 좋을 것 같다!
2022. 09. 18 04:00 ~ 05:00
nvim 루아 가이드 문서 읽기
오픈소스 프로잭트 루아 가이드(https://github.com/nanotee/nvim-lua-guide/blob/master/doc/nvim-lua-guide.txt)에 의하면 루아를 통한 방법으로써 문서 내용은 아래와 같이 기능 별로 나눠볼 수 있을 것 같다.
- 파일 구조에서 루아 설정 파일이 위치해야하는 곳
- 빔스크립트에서 루아를 사용하는 방법
- nvim이 글로벌 변수 vim을 노출시키고 lua를 통해서 vim과 api를 통해 소통하는 방법 (inspect, regex, ui, loop, lsp, treesitter 등)
- vim option 다루는 방법
- vim 내부 변수 관리하는 방법
- vimscript 함수 호출
- 단축키 맵핑 정의하는 방법
- 여러가지 잡다한
vim.loop | LibUV API 노출하는 모듈 |
vim.lsp | Built-in LSP client를 제어하는 모듈 |
vim.treesitter | Tree-siiter 의 통합을 제어하는 모듈 |
2022. 09. 18 05:00 ~ 06:00
vim.loop에 대해서 nvim 공식 문서를 더 자세히 살펴볼 필요가 있었다. 찾아보니 생각보다 다양한 기능을 진행하는 것 같다. vim.loop는 nvim 이벤트 루프의 모든 기능을 노출할 수 있다. 이것을 로우 래벨 API이며, 기능적으로 networking, filesystem, process 관리를 뜻한다. 남은 1시간 동안, 목표한 오픈소스 기여는 연기(?)하더라도 한 걸음 걸은 것 같으니, 이제, 기능에 필요한 것을 확인하자!
문제는 에디터 LSP에서 code completion을 제공하지 않아서 어떠한 기능을 제공하는지 한눈에 알아보기 어려워 해맸고, 공식 문서에서 사용 가능한 functions들을 확인할 수 있는 방법을 알았다
# 사용가능한 function 출력
lua print(vim.inspect(vim.loop))
vim.loop(https://github.com/nanotee/luv-vimdocs/blob/main/doc/luv.txt)에서 내가 찾던 파일 시스템 관련 기능을 모두 찾을 수 있었다. 이제 이를 이용해서 코드를 작성하려고 한다.
와우!, 스파르톤 마무리
시간 관계상, 마지막 2번은 아쉽게도 완성하지 못했지만, 할까 말까 생각했었던 기능을 밤샘 코딩을 통해 몰입해서 실마리를 찾을 수 있던 유의미한 시간이었다. 좋은 분들을 만나서 재미있게 스파르톤을 진행한 것 같아서 좋았다.