우리 생활을 더 편리하게 만들기 위한
이야기를 써내려갑니다 🚀

최근 글들을 확인해보세요 →

2019년 회고

연말 회고, 2019.12.31
시작하기 앞서, 작년에 올해에는 PS 분야를 열심히 파보자는 다짐을 했었다. 미리 스포 하자면 어느 정도 열심히 했다고 생각한다! 끝말잇기 웹게임, 쿵따 오픈소스 웹게임인 `끄투`를 리메이크하는 프로젝트이다. TypeScript, React를 이용하여 다시 만들기로 했었고 처음에는 프로젝트 이름을 KKuTuReact로 했었다. 추후 지인 추천으로 쿵따라는 이름으로 바꿨다. 아직까지는 디자인, 리소스가 원작을 따라 하고 있다. 개발도 지금은 멈춰있다. 디자인도 새롭게 바꾸고 다시 개발도 잡아봐야 될 거 같다! (다시 잡으면 제일 먼저 리팩토링부터 할 듯... ㅎ) GitHub 저장소는 이곳으로! -> https://github.com/kkutureact/Kungtta 교내 시험대비 CBT 프로젝트 특성화고..

최대공약수와 최소공배수

개발/알고리즘, 2019.12.22
최대공약수 최대공약수를 구하는 알고리즘으로 유명한 유클리드 호제법이 있습니다. "두 개의 자연수 a, b에서 a를 b로 나눈 나머지 r이 있을 때, a와 b의 최대공약수는 b와 r의 최대공약수와 같다." 이 원리를 이용하여 a, b가 있을 때 b MOD r를 구하고 이를 r'라고 하면, r MOD r'를 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수입니다. (gcd) 그대로 코드로 표현해보면 int gcd(int a, int b) { int r; while(b) { r = a % b; a = b; b = r; } return a; } 단, a > b는 이어야하기 때문에 b > a라면 두 숫자를 바꿔주는 과정이 필요합니다. int gcd(int a, int b) { if(b > a) ..

Kotlin으로 만든 디스코드 봇 Jenkins 적용기

개발, 2019.12.02
학교 급식, 시간표를 빠르게 보기 위한 용도로 제작된 디스코드 봇이 있습니다. 해당 디스코드 봇은 Kotlin에 JDA 라이브러리를 이용했는데 번거롭고 귀찮던 배포 과정을 Jenkins로 간단하게 줄이면서 있었던 일들을 써볼까 합니다. 불편했던 기존 과정 기존 과정은 정직한 방법(?)이었습니다. 1. Gradle로 빌드 & .jar 패키징 2. 서버에 FTP로 .jar 파일 전송 3. SSH 접속 후 Docker image build 4. Docker 컨테이너 재시작 간단하면서도 복잡하게 보였던 이 과정을 봇을 업데이트할 때마다 하자니 번거롭습니다. 마침 Jenkins로 배워봐야겠다 싶어 이 과정을 Jenkins로 자동화해보았습니다. Jenkins를 써보자! (아래 과정은 GitHub 계정 등록, Gra..
반응형