전체 글 89

[Gitistory] github에서 로컬 서버로 요청 연동하기 (feat. Github Webhook)

오늘은 블로그에 포스팅하도록 Google Chrome driver 코드를 짰기 때문에 이제 Gitistory 프로젝트의 두번째 목적인 github의 레포지토리의 PR이 올라오는 순간 해당 코드를 작동시키도록 Github와 코드를 연동하는 것을 진행했다. 원래는 EC2 인스턴스를 통해서 24시간 코드를 돌리려 했는데, 인스턴스의 메모리가 너무 작아서flask의 가상 환경이 memory를 가득 잡아먹는 탓인지 CPU가 메모리 가상화하는데 점유를 다해서 문제가 발생했다. 이 문제는 docker로 구워서 가동시키면 해결 될 수도 있을 것 같은데 flask를 docker로 구워서 실행시키는 것보다 일단 로컬에서 코드를 다 짜고 해당 방법으로 조금 개선하도록 프로젝트를 진행하려 한다..  웹 상의 github we..

프로그래밍 2024.08.02

[Backend-RoadMap] HTTP에 대한 모든 것 - (2)

지난 포스팅에서는 HTTP의 기초 개념과 초기 버전에 대해서 학습한 뒤 정리해보았다.  이번 포스팅은 HTTP/1.0 버전보다 개선되어 출시된 1.1버전과 2.0 버전 및 HTTP에 대한 새로운 시도에 대해 알아보며 새롭게 확장된 HTTP의 변화를 통해 호스트들에게 어떤 것이 가능해졌는지 공부해 보도록 할 것이다.  HTTP/1.11.0이 출시된지 3년만인 199년에 1.1이 출시되었고, 1.0 버전에 비해 많은 개선이 이루어졌다. 주요 개선 사항을 알아보자.   1. PUT, PATCH, OPTIONS, DELETE가 HTTP 메서드에 새롭게 추가된다.   2. 필수가 아니었던 호스트 식별 헤더가 필수로 변경된다.   3. 한 요청당 하나의 연결이 필요했던 문제를 해결하기 위해 지속적 연결(Persis..

프로그래밍 2024.08.01

[Backend-RoadMap] HTTP에 대한 모든 것 - (1)

Backend 개발자의 커리어를 체계적으로 쌓아가기 위해 백엔드라면 당연히 알아야 할 지식에 대해 차곡차곡 학습하려 한다. 오늘은 HTTP에 대해 학습한 것에 대한 포스팅을 작성하겠다. HTTP란?HTTP는 클라이언트와 서버가 서로 통신하는 방식을 표준화하는 TCP/IP 기반 어플리케이션 계층 통신 프로토콜이다. HTTP는 콘텐츠가 인터넷을 통해 요청되고 전송되는 방식을 정의한다.  이때, 어플리케이션 계층 프로토콜이란? 호스트(클라이언트와 서버. 즉 통신 송/수신 주체)가 통신하는 방식을 표준화하는 단순한 추상화 계층을 의미한다. HTTP 자체는 클라이언트와 서버 간의 요청과 응답을 얻기 위해 TCP/IP에 의존한다. 기본적으로 TCP 포트 80번을 사용되고, HTTPS는 443번 포트를 사용한다.  ..

프로그래밍 2024.07.31

[Gitistory] Chrome driver를 통해 소프트웨어로 블로그 자동 로그인하기

개발공부를 목적을 두고 수행하고 싶어서 사이드 프로젝트를 하나 진행하려한다. 프로젝트 기능은 github의 PR 내용을 블로그에 자동 업로드하여, 코드와 주요 변경사항을 손쉽게 파악할 수 있도록 하는것이다. 이름은 Gitistory 그 과정에서 발생하는 트러블 슈팅 및 개발 과정을 정리하도록 하겠다. Flask 개발 환경 세팅 개발환경은 지난 포스팅을 통해 세팅을 완료했다. 다음은 이제 내 블로그에 소프트웨어 코드로 포스팅을 하는 방법을 찾는 것이었다. 처음엔 당연히 tistory open api를 사용하려고 했다. 하지만 왠지 올해부터 자동 댓글 생성하는 봇이 활동을 안하더라.. 아무튼 그래서 다른 방법을 생각해내야 했다. 크래프톤 정글에서 코치님이 '개발자에게 불가능한 것은 없다. 다만 시간이 얼마나..

프로그래밍 2024.07.29

Flask로 개발 프로젝트 시작하기

깃허브 PR - Tistory 블로그 포스팅 연동 기능 프로젝트를 진행하기 위해 가볍게 프로젝트를 시작할 수 있는 python의 flask를 선택했다. 먼저 Flask 프로젝트를 수행하는 절차를 기록하고 수행하는 절차의 각각 목적을 학습하여 정리하겠다.   Flask 프로젝트 구축먼저 아래 명령어를 순서대로 터미널에 입력한다.# 가상 환경 생성python -m venv .venv# 가상 환경 활성화# Windowsvenv\Scripts\activate# MacOS/Linuxsource .venv/bin/activate# Flask 설치python3 -m pip install flask  처음에 블로그보고 그냥 가상환경 내에서 pip install flask로 flask를 설치한 후에 app을 실행하니 f..

카테고리 없음 2024.07.29

자기 회고

소프트웨어의 힘과 적성을 느낀 후, 대학교 4학년때부터 개발에 관한 공부를 시작했다. 나에게 가장 큰 동기부여는 내가 좋아하는 일을 하는 것이었다. 좋아하는 일을 하면 잘 할 수 있는 사람이라고 스스로 생각하는 편이다. 4학년 때 졸업 작품으로, 개발을 해보고 싶어 학과의 사물함 신청 웹페이지를 제작했다. 이 작품으로 캡스톤디자인 경진대회에서 최우수상을 받았고, 상과 함께 사람들에게 편리한 기능을 제공하는 개발자가 되고 싶다는 꿈도 생겼다. 이후 개발을 하기 위한 공부를 시작했고, 학교에서 진행한 SW 아카데미 교육에서 5개월간 학습했다. 밑바닥이고 무엇부터 시작해야될지 모르던 나에게 Java라는 언어를 처음 경험하게 해주었고, Springboot를 사용한 웹개발, 데이터베이스 설계와 응용방법, 프론트와..

회고 2024.07.13

[Scala] 공부 내용 정리

"class A extends B with C"이 때, C는 스칼라 언어에서 Trait라고 부르며, Java의 인터페이스와 유사하지만 구체적인 메서드 구현을 포함할 수 있다.예시 코드는 다음과 같다trait C { def traitMethod(): Unit = { println("This is a method from trait C") }} class B { def superClassMethod(): Unit = { println("This is a method from class B") }} class A extends B with C { def classAMethod(): Unit = { println("This is a method from class A") }} obje..

프로그래밍 2024.07.12