티스토리 뷰

Programming

2019년 회고

하늘빛QP 2019. 12. 31. 16:17

시작하기 앞서, 작년에 올해에는 PS 분야를 열심히 파보자는 다짐을 했었다. 미리 스포 하자면 어느 정도 열심히 했다고 생각한다!

끝말잇기 웹게임, 쿵따

오픈소스 웹게임인 `끄투`를 리메이크하는 프로젝트이다.

TypeScript, React를 이용하여 다시 만들기로 했었고 처음에는 프로젝트 이름을 KKuTuReact로 했었다. 추후 지인 추천으로 쿵따라는 이름으로 바꿨다.

 

아직까지는 디자인, 리소스가 원작을 따라 하고 있다. 개발도 지금은 멈춰있다. 디자인도 새롭게 바꾸고 다시 개발도 잡아봐야 될 거 같다! (다시 잡으면 제일 먼저 리팩토링부터 할 듯... ㅎ)

 

GitHub 저장소는 이곳으로! -> https://github.com/kkutureact/Kungtta

 

교내 시험대비 CBT 프로젝트

특성화고등학교에 입학을 하면서 주변에서 또는 내가 자격증을 준비하는 일이 생겼다. 실제 시험도 준비도 컴퓨터로 문제를 풀었는데 이를 Computer Based Test, CBT라고 한다 하더라

 

학교 시험 대비 문제도 문제은행 CBT 방식으로 풀면 어떨까 해서 같은 과 몇 명 하고 같이 진행하게 되었다.

 

초반 개발 이야기는 이곳을 참고! -> https://blog.skylightqp.kr/273

 

교내 문제풀이 사이트 개발기

자격증 시험을 보거나 연습하기 위해 CBT(컴퓨터로 문제 푸는 거) 문제풀이 방식을 사용합니다. 학교 시험공부를 CBT로 하면 어떨까라는 생각으로 시작하였습니다. (만들어놓고 거의 안씀) (아마 시험 2주전인가 1..

blog.skylightqp.kr

처음 개발 계획은 관리자들만 문제를 낼 수 있는 폐쇄적인 방식(?)이었는데 지금은 이 방식을 버리고 교내 학생 모두가 출제하게끔 바꾸고 있다. 디자인 또한 카트형 디자인을 버리고 새로 만들고 있다.

 

현재 로그인 페이지

 

해당 프로젝트도 GitHub 저장소는! -> https://github.com/swsuft/suft-frontend

 

프론트엔드 UI / UX

React와 함께 프론트엔드 개발을 하면서 Atomic Design, Design System에 관한 이야기를 많이 듣게 되었다.

전자의 경우 간략하게 설명하면

 

  • Atoms
  • Molecules
  • Organisms
  • Templates
  • Pages

위에서부터 작은 것들을 조합하여 디자인을 완성하는 방법론 중 하나이다.

 

디자인 시스템은 폰트 크기, 아이콘 크기, 색깔 등 기초적인 디자인을 미리 정의하는 것이다.

위 CBT 프로젝트 역시 페이지마다 폰트 크기가 다르고(짝수를 쓰자는 규칙만 있다) 그나마 색깔은 CSS 변수로 미리 정의되어있다.

 

Color palettes

쿵따, CBT 프로젝트도 그렇고 앞으로 개발할 것들도 디자인 시스템을 적용해볼 생각이다. 미리 정의해두면 개발자는 가져와서 적용만 하면 된다. 페이지마다 폰트 크기, 색깔이 다르면 개발자도 불편하고 사용자도 어색하거나 불편해하지 않을까?

 

올해(2019년)에 들어 UX에도 관심이 많아졌다. 웹 서핑하거나 웹 서비스를 이용하다 보면 사소한 건데 잘못된 UX로 불편한 적이 많았다. 올바른 UX 설계만 해도 사용자 만족도가 올라간다고 생각하고, 나도 뭔가 기분이 좋다. (?)

 

 

PS - Baekjoon

처음에도 말했던 PS이다. 단순 구현도 힘들어했던 내가 지금은 스택, 큐, 덱 같은 기초적인 자료구조를 배웠고 다이나믹 프로그래밍이나 그래프 탐색도 다룰 줄 알게 되었다. (하지만 점화식 도출은 언제나 어렵다.)

매일마다 (영양가 있는)한 문제라도 풀려고 노력 중이고 푼 문제를 짧게나마 정리해보고 있다. 나중에 조금 모으면 따로 정리해서 글 써보는 걸로!

 

BOJ 11724

문제의 질이 중요하지 문제를 많이 풀었다고 좋은 건 아니지만 백준 100문제를 넘겼다. 그래도 푼 문제가 적은 것보다는 많은 게 좋지 않을까? (자기 합리화?)

 

Baekjoon Stats

작년에 이어 올해 역시 NYPC에 참가했었다. 작년에는 1회차까지 하고 2회차는 난이도의 벽에 막혔는데 올해는 3회차 초반까지 풀었다. (이번에 난이도가 내려간 영향도 있음..)

 

반대로 Codeforces는 떡락했다. 아직 실력이 없는 것도 있고 언어의 장벽도 꽤 큰 거 같다.

 

Codeforces Score

 

Rust 🦀

요즘에 Rust를 배우고 있다. 병렬 프로그래밍을 지원하고 메모리 오류를 컴파일 타임 때 잡아준다는 특징이 있다. 컴파일 타임 때 잡아주기 위해 소유권이라는 개념이 들어가 있다.

Sorting visualization에 관심이 많아졌는데 Rust로 이 프로그램을 만들어보는 걸 목표로 잡고 배워보고 있다. 프로그램을 만들면서 언어를 배우는 게 나에게는 가장 맞는 공부법인 거 같다.

 

 

외부활동

운 좋게도 인연이 생겨 제2회 KB국민은행 소프트웨어 경진 대회에 참여하게 되었다. 안드로이드 앱 프론트엔드 담당으로 참여했고 React Native를 사용했다.

마감일까지 1주일 정도밖에 없었고 React Native를 거의 처음 써본지라 코드가 매우 엉망진창이다.

아쉽게도 본선에 가지는 못했다.

 

 

 


 

 

마지막으로 GitHub 잔디밭을 공유하면서,

 

2019 GitHub 잔디밭

 

올해는 2019년보다 많은 경험을 쌓고 배웠던 해인 거 같습니다.

2020년 역시 열심히 PS 분야와 Rust를 파지 않을까 싶네요!

 

모두 HAPPY NEW YEAR!

 

댓글
댓글쓰기 폼