프로그래밍 19

[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

[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

[SCALA] 스칼라란?

scala 코드를 분석하는 업무를 수행하며 스칼라 코드에 대해 처음 알게 되었다. scala는 java보다 늦게 생겨나, 오래 전부터 인기를 끌어온 java보다 유명하지 않지만 최근 떠오르고 있는 함수형 프로그래밍을 접목하되, 객체 지향 프로그래밍까지 같이 챙겨가면서 Java와의 호환성도 좋아 비교적 최근에 많은 호응을 얻었다고 한다. 이미 자리 잡은 개발자들에게 스칼라가 왜 매력있는 언어였는지, 또 Java와는 어떤 연관성이 있는지 정리해보겠다. Scala의 장점 1. 간결함, 그리고 표현력 스칼라는 함수형 프로그래밍을 지원하여 고전 Java에 비해 더 간결하고 표현력 있는 코드를 작성할 수 있게 해준다. 예를 들면 순회 컬렉션 처리에서의 람다 함수와 고차 함수를 사용하면 복잡한 코드를 더 간결하게 작..

프로그래밍 2024.07.12

[TIL] 객체 지향 프로그래밍(OOP)이란 ? (feat. 객체지향 5원칙 - SOLID)

지금까지 비즈니스 코드를 유지보수한 경험이 없어, 객체 지향 프로그래밍에 대한 필요성을 느끼지 못했다. 집중적으로 파고 들면서 객체 지향 프로그래밍을 학습한 적도 없어서, 대충 뭔지 한마디로 정의할 수는 있겠지만 정확히는 잘 모르겠다. 그래서 궁금해서 집중적으로 공부해보았다. 객체 지향 프로그래밍(OOP)이란? OOP = Object-Oriented Programming 객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그램 내의 데이터를 추상화한 뒤, 상태와 행위를 가지는 객체로 선언 후 사용하는 프로그래밍이다. 과거에는 데이터의 시간 절차 순으로 프로그래밍하는 절차 지향 프로그래밍을 사용했지만, 코드의 양이 많아지면서 코드의 유지 보수를 위해 객체 지향 프로그래밍을 사용하게 되었다. ..

프로그래밍 2024.03.30