본문 바로가기

전체

(90)
랜덤 한글 단어 만들기 서론 학교에서 진행 중인 프로젝트 '주다'는 온·오프라인 학습에서 쓸 수 있는 보조 플랫폼입니다. 방에 입장하기 위한 초대 코드와 출석체크에 필요한 출석 코드를 만들어야 하는데 흔히 쓰이는 알파벳 코드가 아닌 한글 단어로 이루어진 코드를 만들어 보기로 했습니다. 이런 느낌으로요! 🅰 알파벳은 알겠는데... 한글? 알파벳으로만 이루어진 코드는 예전에도 해봤었고, 구글링을 통해 쉽게 자료를 얻을 수 있었습니다. 알파벳을 담은(A-Z, a-z) 문자열 변수를 만들어주고 랜덤 한 인덱스를 뽑은 뒤 이에 매칭 되는 알파벳을 골라주면 됩니다. const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; const generateCode = (..
학교 인트라넷 프로젝트: 수정과 개발기 갑자기 인트라넷? 각 학교마다 여러 가지 행사들이 있습니다. 저희 학교의 경우 '우산대여제'라는 사업(행사)이 있습니다. 아래와 같은 프로세스로 굴러가는데, 비가 오거나 눈이 오는 등으로 우산이 필요할 때 시행합니다. 학생회에게 보증금을 2천원을 먼저 주고 우산을 받습니다. 우산을 반납하면 보증금을 돌려받습니다. 우산 반납이 연체되면 보증금을 돌려받을 수 없습니다. 또한 3일 이내에 반납이 이루어지지 않으면 블랙리스트에 등록되며 영구적으로 이용할 수 없습니다. 간단하지만 사람이 많다면 복잡한 과정이라고 생각합니다. 우산 대여자가 많아지면 학생회의 일이 커지게 되는데 이를 자동화할 수 없을까? 라는 생각에서 출발했습니다. 코로나19로 인해 원격 수업이 잦아지면서 구글 클래스룸, Zoom 등 수업 링크를 기..
벌써 2021년? 2020년은 2019년보다 더 빠르게 지나간 것 같습니다. 많은 일들이 있었지만 가장 생산력 있는 해였습니다. 아무리 블로그 글은 안 올려도 회고글은 항상 올렸기에 2020년에도 한 해를 회고해보려고 합니다. SW마에스트로 합격 SW마에스트로가 뭔지 알고만 있었는데, 주변 지인을 통해 11기 모집한다는 소식을 듣고 지원해봤습니다. 매우 감사하게도 11기에 최종 합격했습니다! 🎉 SW마에스트로는 오프라인 행사로 이루어져 있었으나... 코로나로 인해 대부분 행사가 온라인으로 바뀌었고 프로젝트 또한 온라인으로 진행하게 되었습니다. 사람들은 많이 못 만난 건 아쉽지만 고등학생이기 때문에 편하게 참여하기는 했습니다 😀 코딩 테스트 또한 오프라인 테스트에서 온라인 코테 2번으로 변경되었습니다. 10기에서는 모든 문..
GitHub Actions와 SFTP로 React 프로젝트 배포하기 예전에는 Jenkins, Travis CI와 같은 써드파티를 이용하여 배포를 했다면 요즘에는 GitHub Actions으로 이전보다 쉽게 배포를 할 수 있게 되었습니다. 개인적으로 React 프로젝트를 배포하기 가장 쉬운 방법은 아마존 S3라고 생각합니다 S3를 썼으면 좋겠지만.. 여러 사정으로 인해 진행하는 프로젝트에서는 S3를 이용할 수가 없었기 때문에 SFTP를 이용해서 React 프로젝트를 배포해보겠습니다. Workflow 작성하기 SFTP를 쓸 수 있는 Action입니다. https://github.com/SamKirkland/FTP-Deploy-Action SamKirkland/FTP-Deploy-Action Deploys a GitHub project to a FTP server using ..
Git 사용시 한글 깨지는 오류 해결하기 Git을 이용해 commit을 확인하려고 하니까 한글이 깨지는 이슈가 발생하였습니다. (똑같지는 않았는데 비슷한 문구였다) 혹시 clone을 잘못한 게 아닌가 싶어 다시 해봤고 재부팅도 해봤으나 결국은 인코딩 문제였습니다. 해결 방법은 두 가지인데, 1. Git Bash를 사용하자 2. 환경변수로 인코딩을 바꿔주자 입니다. 1번은 금방 해결되고 여기서는 2번을 다뤄보겠습니다. 환경변수 LC_ALL 을(를) 추가해주고 값에 ko_KR.UTF-8 을(를) 넣어주면 됩니다. 이후 저장해주고 터미널을 재시작해주면 해결됩니다.
공적마스크 재고 & 온라인 개학 시간표 알림 챗봇 개발기 공적 마스크 재고 조회 한참 공적 마스크 구매가 유행일 때 마스크 재고 조회 API가 등장하였고 저희 반 디스코드 방에 있던 챗봇에 기능을 추가하게 되었습니다. 해당 봇은 원래 시간표, 급식 정보를 알려주는 봇입니다. 주의! 아래 기능들은 하루 만에 개발을 끝낸 거라 코드가 많이 더럽습니다. 😂 처음에는 React를 이용하여 웹으로 개발하려 했으나 복잡하기도 하고 시간문제가 있어 챗봇에 넣게 되었습니다. 웹 환경에서는 사용자의 위치를 가져올 수 있기 때문에 해당 기준으로 마스크 조회가 가능하지만, 디스코드에서는 현재 위치를 조회하기 어렵습니다. (개발 당시에는 방법을 몰랐는 데 있을지도 모른다) 끝내 결정한 방법은 주소를 받으면 주소 주변의 마스크 판매점을 알려주기로 했습니다. 주소 기준 판매점 조회는 ..
백준 #6581 HTML 오로지 , 태그와 그 외 평문으로만 주어지는 HTML 문서가 있을 때, 그 결과를 보여주는 코드를 작성하시오. 한 줄에는 80자보다 많은 글자가 출력되어서는 안 된다. https://www.acmicpc.net/problem/6581 정답 뜨자마자 정리하는 따끈한 글! 해당 문제는 입력으로 HTML 코드가 들어오면 파싱해서 결과를 출력해주면 되는 문제이다. 단, 조건이 있는데 한 줄에는 80자 이상을 출력할 수 없고 80줄이 넘으면 줄바꿈 후 출력한다. 태그가 주어지면 줄바꿈을 한다. 태그가 주어지면 줄바꿈 후 라면 - 문자 80개를 출력하고 아니라면 줄바꿈 후 출력한다. 위 조건에 맞게 구현을 해주면 된다. 처음 접근 방식은 vector에 \n (newline) 기호를 넣어주고 출력해보면 되지 않을까 ..
🌐 HTTP Status Code, 301 vs 302 301과 302의 차이점 웹 개발을 하다보면 페이지 리다이렉트를 할 일이 생기는데 그 때마다 항상 찾아보는 코드이다. (어떻게 볼 때마다 까먹는지 지금은 기억함.. ㅎ) 301 (Permanent redirect) 페이지가 영구적으로 이동했다는 의미를 갖고있습니다. foo.com에서 bar.com으로 이동했다면 검색엔진은 영구적으로 페이지가 변경되었다 판단하고 검색 결과를 bar.com으로 표기합니다. 주로 도메인 이전으로 foo.com에서 bar.com으로 변경되거나 www.bar.com으로 접속했을 때 bar.com으로 리다이렉트 되는 경우에 쓰입니다. 302 (Temporary redirect) 페이지가 임시적으로 이동했다는 의미를 갖고있습니다. 301 코드와 달리 foo.com`에서 bar.com..

반응형