분류 전체보기

CS/컴퓨터 네트워크

[컴퓨터 네트워크] 1. 인터넷과 프로토콜

1. 인터넷 Internet vs internet 두 용어는 엄밀하게 서로 다른 용어이다. Internet 은 우리가 일상생활에서 사용하는, 전세계 사람들과 만나는 통로가 되는 인터넷을 의미한다. 일상에서 '거기 인터넷 잘 돼?' 라고 물어볼 때 사용하는 그 '인터넷' 을 의미하는 고유명사이다. internet 은 조금 더 기술적인 의미로서, inter networking 의 줄임말이다. 네트워크와 네트워크 사이의 네트워크 (network of networks) 를 의미하는 용도로 사용한다. 예를 들어 군대에서는 외부 인터넷(Internet)과 완벽히 격리된 내부 네트워크를 사용하는데, 내부 네트워크 역시 각종 네트워크 장비를 통해 서로 다른 내부 네트워크들과 연결되어있다. (인트라넷 - C4I 와 같은..

자기계발/동아리

신촌 연합 IT 창업 동아리, CEOS 19기 서류, 면접 합격 후기 (백엔드)

CEOS 19기에 지원하면서 그 준비 과정을 정리하고자 한다. CEOS 동아리 정보 https://ceos-sinchon.com/ CEOS | 세오스 CEOS는 연세대학교, 서강대학교, 이화여자대학교, 홍익대학교 학생들이 모인 최고의 IT 창업 학회입니다. ceos-sinchon.com 세오스는 신촌 연합 IT 창업 동아리이다. 단순 IT 동아리가 아니라, '창업' 동아리임을 강조한다. 모집 대상은 '창업' 에 관심있는 사람이라고 했는데, 면접 파트에서 후술하겠지만 나의 경우 창업 질문은 나오지 않았다. 매주 수요일 정기 세션을 진행한다. 정기 세션에서는 창업과 관련된 활동을 진행한다. 나는 백엔드로 지원하였고, 위 사진은 '개발' 파트 모집 공고에 올라온 내용이다. 스터디 커리큘럼은 위와 같이 나와있었..

알고리즘 (PS)/BOJ

[백준] 21609 - 상어 중학교 (Python)

https://www.acmicpc.net/problem/21609 21609번: 상어 중학교 상어 중학교의 코딩 동아리에서 게임을 만들었다. 이 게임은 크기가 N×N인 격자에서 진행되고, 초기에 격자의 모든 칸에는 블록이 하나씩 들어있고, 블록은 검은색 블록, 무지개 블록, 일반 블록 www.acmicpc.net BFS 를 활용하는 시뮬레이션 문제이다. 구현할 때 모든 조건을 꼼꼼히 살펴야하고, 작은 사소한 실수 하나로도 문제를 틀리기 때문에 난이도가 높다. N, M = map(int, input().split()) board = [list(map(int, input().split())) for _ in range(N)] score = 0 while True: x, y, size = find_block..

팀 프로젝트/[2024] GDSC 프로젝트 트랙

[GDSC 프로젝트 트랙] 6. 게시글 CRUD, 댓글 CRUD API 구현

아이를 맡기고 맡는다는 핵심 로직의 구현이 어느 정도 완료되어 서브 커뮤니티을 구현하기 시작했다. 게시글과 각 게시글에 달리는 댓글을 관리하는 CRUD 를 구현하였다. 문서 필드는 위와같이 구성하였다. comment_count 를 따로 속성으로 빼둔 이유는, 전체 글 리스트를 조회할 때 댓글 개수는 필요하지만, 댓글 데이터 자체는 필요하지 않기 때문에 댓글 갯수를 별도 필드에 저장하도록 하였다. 그런데 지금 생각해보니 댓글 개수 정보는 하위 컬렉션에 저장해두고 매번 API 호출 시 댓글 컬릭션의 문서 갯수를 세서 반환하므로 굳이 DB 필드로 존재할 필요는 없었을 것 같다. 삭제를 고려해야겠다. 댓글은 위와 같이 구성하였다. 내용과 댓글 작성 시간, 작성자 정보만 저장하였다. 기능 구현 자체는 게시판 만들..

Infra/Oracle Cloud

[crontab, postfix] MAIL (mailed bytes of output but got status 0x004b from MTA#012) 대처 방법

이메일을 보내는 파이썬 스크립트를 단독 실행했을 때는 분명 잘 되는데, crontab 에 등록을 하니 위와 같은 에러가 뜨면서 메일이 발송되지 않았다. 나의 경우는 MTA 에 등록된 hostname 과 파이썬 스크립트에 등록된 hostname 이 일치하지 않아서 생긴 문제였다. https://tsy0668.tistory.com/11 [Ubuntu] Ubuntu에 Postfix 설치, Gmail SMTP 설정, 메일 보내기 ◆ Gmail 계정 준비◆ Ubuntu 18.04 LTS 버전◆ Ubuntu 클라우드에서 Postfix를 SEND-only SMTP로 구성 1. Ubuntu 실행 후 Root로 이동 sudo su Root의 Password 입력을 요구하는 라인이 나오고 Password를 입력하면 Roo..

Tool & Language/Python3

smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. 해결 방법

파이썬으로 메일링 기능을 구현하는 도중 위와 같은 문제를 만났다. 이 에러는 username 이 잘못되었거나, password가 잘못되었거나, 구글에서 지원하지 않는 방식으로 로그인을 시도할 때 발생한다. 1. 앱 비밀번호를 이용하기 우선, 2022년 5월 이후로 기존의 '아이디-비밀번호' 방식으로는 서드파티에서 이메일을 전송을 위한 구글 계정 로그인을 할 수 없게 되었다. 따라서 아래 과정을 통해 로그인을 해야한다. https://myaccount.google.com/security Google 계정 myaccount.google.com 먼저 구글 계정의 보안탭으로 이동한다. 그리고 2단계 인증을 활성화해준다. 오른쪽 화살표를 클릭하여 상세 페이지로 이동한 후, 화면을 밑으로 내려주면 아래와 같은 앱 ..

개인 프로젝트/간단한 프로젝트

[개인프로젝트] 수원시 공고알림 크롤링 및 메일링 프로그램 제작

수원시 공고 사이트에서 원하는 정보가 새로 올라왔을 때, 해당 정보를 메일로 받는 프로그램을 제작해보았다. https://www.suwon.go.kr/web/saeallOfr/BD_ofrList.do?q_currPage=1&q_sortName=&q_sortOrder=&q_rowPerPage=&q_searchKey=SJ&q_searchVal= 공고/고시/입법예고 : HOME > 수원소식 > 공고/고시/입법예고 8792 수원시 장안구 파장동 공고 제2024-13호 주민등록신고 미이행자에 대한 최고공고 파장동 2024-02-08 2024-02-08 ~ 2024-02-26 24 8791 수원시 영통구 공고 제2024-75호 2024년 경로당 활성화 문화교실 강사모 www.suwon.go.kr 크롤링, 메일링 모..

팀 프로젝트/[2024] GDSC 프로젝트 트랙

[GDSC 프로젝트 트랙] 5. 장고(Django) 배포 & Github Action 이용한 CI/CD 구축

일단 무작정 배포하기 처음 프로젝트를 시작할 때는 프론트에서 API를 사용하기 위해 백엔드 레포지토리에서 코드를 받아 직접 로컬에서 서버를 실행시킨 뒤, localhost:8000 으로 요청을 보내는 방식을 사용해야했다. 하지만, 아무리 readme에 서버 구동 방법을 자세히 적어두어도 파이썬 설치, 가상환경 설정과 같은 개발환경 세팅을 장고를 학습해보지 않은 프론트가 따라하기에는 어려움이 있을 수 밖에 없었다. 프론트 멤버가 개발을 하기도 전에 백엔드 개발환경 세팅으로 고생하는 것을 보고 이건 아니다 싶어서 일단 빨리 서버에 배포부터 하자고 생각했다. 서버는 어떤 서버를 사용할 지 생각을 해봤는데, pythonanywhere 같은 호스팅 사이트를 사용하는 것도 괜찮은 듯 보였으나, 이번 기회에 직접 장..

팀 프로젝트/[2024] GDSC 프로젝트 트랙

[GDSC 프로젝트 트랙] 4. 채팅 구현 방식 결정 & API 작성

로그인 API 구현 이후로는 채팅 API를 구현하게 되었다. 우선 실시간 채팅 API를 구현하기 위해 Firestore 에서 제공하는 document 변경 감지 기능을 사용하는 것을 고민해보았다. https://firebase.google.com/docs/firestore/query-data/listen?hl=ko Cloud Firestore로 실시간 업데이트 가져오기 | Firebase 의견 보내기 Cloud Firestore로 실시간 업데이트 가져오기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. onSnapshot() 메서드로 문서를 리슨할 수 있습니다. 사용 firebase.google.com 채팅방에 해당하는 문서를 만들고, 그 문서 안에서 채팅 내역 데이터가 바..

알고리즘 (PS)/BOJ

[백준] 20055 - 컨베이어 벨트 위의 로봇

https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 간단한 시뮬레이션 문제이다. 나는 생각을 어렵게 해서 쌩 배열로 구현해서 그런지 구현이 빡셌지만.. 난이도 매기는 사람들 의견보니 구현은 쉬운편이라고.. 그냥 덱 자료구조로 하면 더 쉽게 할 수 있을 것 같다. Python 리스트 (배열) 사용 풀이 배열과 리스트는 다르지만 사실상 리스트를 배열처럼 활용하여 풀었다. 나는 2N 개의 배열을 미리 잡아두고 '올리는 위치(put_..

에버듀
'분류 전체보기' 카테고리의 글 목록 (34 Page)