[BOJ] #1316: 그룹 단어 체커 (Python)
·
코딩테스트
문제https://www.acmicpc.net/problem/1316그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다.단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오.코드"""Input: N(단어의 개수) / word(N개의 단어)Output:Constraints: 1 TIL문자열을 입력받을 때 줄바꿈 문자(\n)를 제거하는 방법replace()문자열 내의 모든 줄바꿈 문자를 제거할 수 있다. 대상 문자열에서 특정 문자..
[모던 자바스크립트 튜토리얼] 이벤트 버블링, 이벤트 캡처링, 이벤트 위임
·
Frontend/Javascript
모던 자바스크립트 튜토리얼을 읽으며 정리한 글이다.이벤트 버블링이벤트 발생한 요소(자식 요소)에서 시작하여 DOM 트리 상위(부모 요소)로 전파되는 방식이벤트가 제일 깊은 곳에 있는 요소에서 시작하여 부모 요소를 거슬러 올라가며 발생하는 모양이 물 속에서 거품이 올라오는 모양🫧과 닮아서 표현된 것이다.event.target vs thisevent.target이벤트가 발생한 가장 안쪽의 요소, 실제 이벤트가 시작된 타깃 요소this(=event.currentTarget)현재 요소, 현재 실행 중인 핸들러가 할당된 요소를 참조버블링 중단event.stopPropagation(), event.stopImmediatePropagation() 함수를 통해 버블링을 중단할 수 있다.하지만, 이벤트 버블링을 막아야..
[Next.js, Material UI] 포트폴리오 웹페이지 개발 기록(1) - 폰트 적용하는 방법
·
Frontend
현재 개인 포트폴리오 웹 페이지를 Next.js와 Material UI를 활용하여 개발하고 있다.이전 프로젝트에서 컴포넌트를 css로 하나하나 직접 만들어서 atomic design pattern을 적용했다면, 이번에는 Material UI를 활용했다. 기본적인 컴포넌트들이 이미 구성된 상태에서 내가 원하는 방식과 형태로 커스터마이징해서 하는 방식이 훨씬 효율적으로 다가왔다.포트폴리오 디자인포트폴리오의 디자인 컨셉은 사용자에게 시각적으로 편안하고, 전체적으로 부드러운 느낌을 주는 것이다.영어는 DM Serif Display, 한국어는 Gowun Batang을 사용했다.폰트 적용Next.js와 Material UI에는 기본적으로 적용되는 폰트가 있다. 하지만 내가 원하는 폰트를 사용하려면 몇 가지 설정이 ..
[Git] Git Error: The previous cherry-pick is now empty, possibly due to conflict resolution
·
Github
오류한 스터디원의 브랜치를 main 브랜치에 rebase를 하려는 상황이었다.nagyum 브랜치에 checkout을 하여main 브랜치로 rebase를 진행했더니Error: The previous cherry-pick is now empty, possibly due to conflict resolution이러한 오류 내용이 나왔다.어떤 오류 내용인지 검색해보니, commit한 내용이 중복될 때 발생하는 문제였다.https://github.com/fork-dev/TrackerWin/issues/1471 When cherry-picking leads to an empty commit, Fork can't continue - "cherry-pick --skip" is missing · Issue #1471 ·..
SQLD 일주일 공부 방법 & 합격 후기 (feat. 전공자)
·
Backend/SQL
SQLD를 준비하는 과정에서 작성되어 있는 블로그 후기들을 통해 도움을 많이 받아,저 또한 합격 후기를 올리고자 합니다.개념 공부https://www.youtube.com/playlist?list=PLbflMVhwy2jPIAzArCK90mqFlTtndFigS SQLDSQLD 자격증 취득을 위한 요약 강의www.youtube.comSQLD 관련 개념은 "홍쌤의 데이터 랩" 유튜브 채널에 있는 SQLD 1과목, 2과목 정리 영상을 통해 공부했습니다.각 과목마다 필요한 핵심 개념들이 잘 정리되어 있었고, 특히 입력된 SQL문에 따라서 나오는 결과가 잘 정리되어 있어서 좋았습니다.https://cafe.naver.com/hongdatalab 홍은혜 강사의 Data Lab : 네이버 카페전) 삼성SDS 데이터 엔..
[AWS] 502 Bad Gateway: Slackbot API 연결 오류
·
Backend/AWS
오류/home/ubuntu/.pm2/logs/index-error.log last 15 lines:0|index | code: 'slack_bolt_app_initialization_error'0|index | }0|index | AppInitializationError: You must provide an appToken when socketMode is set to true. To generate an appToken see: https://api.slack.com/apis/connections/socket#token0|index | at App.initReceiver (/home/ubuntu/Do-IT/node_modules/@slack/bolt/dist/App.js..
[AWS] 502 Bad Gateway: MySQL 데이터베이스 접근 권한 거부 오류
·
Backend/AWS
git repository를 AWS EC2에 배포하기 위해, AWS EC2를 세팅하는 과정에서 발생했던 오류이다.오류pm2 log를 입력하여 오류 내용을 확인해보았다./home/ubuntu/.pm2/logs/index-error.log last 15 lines:0|index | at Connection.handlePacket (/Do-IT/node_modules/mysql2/lib/connection.js:478:34)0|index | at PacketParser.onPacket (/Do-IT/node_modules/mysql2/lib/connection.js:97:12)0|index | at PacketParser.executeStart (/Do-IT/n..
[AWS] 502 Bad Gateway: AWS EC2, 데이터베이스 서버 연결 오류
·
Backend/AWS
git repository를 AWS EC2에 배포하기 위해, AWS EC2를 세팅하는 과정에서 발생했던 오류이다.오류pm2 log를 입력하여 오류 내용을 확인해보았다./home/ubuntu/.pm2/logs/index-error.log last 15 lines:0|index | syscall: 'connect',0|index | address: '127.0.0.1',0|index | port: 3306,0|index | fatal: true0|index | },0|index | original: Error: connect ECONNREFUSED 127.0.0.1:33060|index | at TCPConnectWrap.a..
[BOJ] #1158: 요세푸스 문제 (Python)
·
코딩테스트
https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)www.acmicpc.net문제N명의 사람이 원을 이루면서 앉아있는 상태에서, 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 또 K번째 사람을 제거한다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다.원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다.입력N: 원을 이루는 사람의 수K: 제거되는 사람의 순서출력요세푸스 순열제약1 예제7명의 사람이 원을 이루면서 앉아있는 상태에서, 7명의 사람이 모두 제거될 때까지 3번째 사람을 계속 제거해야 한다.그림에서..
[WEB] 브라우저 동작 방법
·
Computer Engineering
브라우저 동작 방법에 대해 공부하기 위해서 여러 자료를 검색하고 참고하여 기록한 것이다. 참고한 자료들의 링크는 하단에 정리되어있다.브라우저 주소 창에 URL(http://naver.com)을 입력했을 때, 어떤 과정을 거쳐서 웹 페이지가 화면에 보이는지에 대해 알아보았다.브라우저의 주요 기능브라우저의 주요 기능은 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것이다.자원은 보통 HTML 문서지만 PDF나 이미지 또는 다른 형태일 수 있다. 자원의 주소는 URI(Uniform Resource Identifier)에 의해 정해진다.여기서 URI와 URL의 차이가 무엇인지 궁금하여 알아보았다.URI와 URL의 차이URI(Uniform Resource Identifier)하나의 리소스를 가리키는 ..