백엔드 1주차 스터디 (3월 5일) 최종 합불 결과가 3월 4일에 나왔는데, 바로 다음날부터 스터디가 진행되었다. 그래도 학기초에 여유 있을 때 부지런히 스터디를 하고, 시험기간에 여유있게 스터디를 빼는 스케줄이라 더 좋았다ㅎㅎ 1주차 스터디에서는 스프링이라는 프레임워크에 대해 공부하는 시간을 가졌다. 신촌지역에 있는 스터디룸을 대여하여 진행하였으며, 간단한 자기소개 후, 운영진이 노션에 정리한 스터디 내용을 강의하는 식으로 진행되었다. (스터디 방식과 진도를 보면 알겠지만, 스프링 프레임워크를 처음 써보는 사람이 감당할 수 있는 정도가 아니다. 세오스 지원할 생각이 있다면 꼭 스프링 프레임워크를 한번이라도 써보고 지원하자) 1주차 스터디 내용은 스프링 핵심 원리인 IoC/DI, AOP, PSA 개념과 ..
컴퓨터 구조 수업의 목표는 MIPS CPU를 직접 디자인하는 것이다. CPU를 디자인하기 전에, 먼저 MIPS CPU가 이해하고 사용할 수 있는 명령어에 대해 정리하자. Instruction (명령어) Instruction 컴퓨터가 사용하는 단어를 가리킨다. 만약 외국인과 대화를 하고 싶다면, 나는 그 외국인의 언어를 사용할 줄 알아야한다. 마찬가지로, 우리가 컴퓨터와 대화하기 위해서는 컴퓨터의 언어를 사용할 줄 알아야 한다. instruction은 컴퓨터와 대화할 때 사용하는 단어 하나를 가리킨다. Instruction Set 컴퓨터가 사용하는 어휘 (단어들의 집합) 을 가리킨다. 정확하게는 CPU가 이해하는 단어의 집합을 가리킨다. 따라서 CPU가 달라지면 컴퓨터가 이해하는 언어가 달라진다. CISC..
Internet 구조에 대해 더 깊게 살펴보자.Network는 크게 Network Edge와 Nework Core로 나누어져 있다.이번 글에서는 Network Edge가 무엇인지와 Network Edge의 구성 요소에 대해 정리하고자 한다.Network Edge지난 글에서 정리한대로 네트워크 엣지는 네트워크 망의 바깥, 네트워크를 활용하는 주체들과 관련된 영역이다.Network Edge를 구성하는 요소는 크게 Host, Access Networks, Physical Media 가 있다. Host호스트는 쉽게 말해 '디바이스' 이다.보통 서버-클라이언트 패러다임 상에서 데이터를 요청하는 존재인 클라이언트와 데이터를 제공하는 존재인 서버로 구성된다. Host는 네트워크를 통해 데이터를 주..
1. 인터넷 Internet vs internet 두 용어는 엄밀하게 서로 다른 용어이다. Internet 은 우리가 일상생활에서 사용하는, 전세계 사람들과 만나는 통로가 되는 인터넷을 의미한다. 일상에서 '거기 인터넷 잘 돼?' 라고 물어볼 때 사용하는 그 '인터넷' 을 의미하는 고유명사이다. internet 은 조금 더 기술적인 의미로서, inter networking 의 줄임말이다. 네트워크와 네트워크 사이의 네트워크 (network of networks) 를 의미하는 용도로 사용한다. 예를 들어 군대에서는 외부 인터넷(Internet)과 완벽히 격리된 내부 네트워크를 사용하는데, 내부 네트워크 역시 각종 네트워크 장비를 통해 서로 다른 내부 네트워크들과 연결되어있다. (인트라넷 - C4I 와 같은..
CEOS 19기에 지원하면서 그 준비 과정을 정리하고자 한다. CEOS 동아리 정보 https://ceos-sinchon.com/ CEOS | 세오스 CEOS는 연세대학교, 서강대학교, 이화여자대학교, 홍익대학교 학생들이 모인 최고의 IT 창업 학회입니다. ceos-sinchon.com 세오스는 신촌 연합 IT 창업 동아리이다. 단순 IT 동아리가 아니라, '창업' 동아리임을 강조한다. 모집 대상은 '창업' 에 관심있는 사람이라고 했는데, 면접 파트에서 후술하겠지만 나의 경우 창업 질문은 나오지 않았다. 매주 수요일 정기 세션을 진행한다. 정기 세션에서는 창업과 관련된 활동을 진행한다. 나는 백엔드로 지원하였고, 위 사진은 '개발' 파트 모집 공고에 올라온 내용이다. 스터디 커리큘럼은 위와 같이 나와있었..
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..
아이를 맡기고 맡는다는 핵심 로직의 구현이 어느 정도 완료되어 서브 커뮤니티을 구현하기 시작했다. 게시글과 각 게시글에 달리는 댓글을 관리하는 CRUD 를 구현하였다. 문서 필드는 위와같이 구성하였다. comment_count 를 따로 속성으로 빼둔 이유는, 전체 글 리스트를 조회할 때 댓글 개수는 필요하지만, 댓글 데이터 자체는 필요하지 않기 때문에 댓글 갯수를 별도 필드에 저장하도록 하였다. 그런데 지금 생각해보니 댓글 개수 정보는 하위 컬렉션에 저장해두고 매번 API 호출 시 댓글 컬릭션의 문서 갯수를 세서 반환하므로 굳이 DB 필드로 존재할 필요는 없었을 것 같다. 삭제를 고려해야겠다. 댓글은 위와 같이 구성하였다. 내용과 댓글 작성 시간, 작성자 정보만 저장하였다. 기능 구현 자체는 게시판 만들..
이메일을 보내는 파이썬 스크립트를 단독 실행했을 때는 분명 잘 되는데, 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..
파이썬으로 메일링 기능을 구현하는 도중 위와 같은 문제를 만났다. 이 에러는 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 크롤링, 메일링 모..