백엔드 : 서버공부
-
스프링 : CascadeType.ALL 사용해보기백엔드 : 서버공부/Spring 2024. 2. 11. 23:38
스프링을 공부하고 프로젝트를 진행하면서 JPA를 사용하게됬는데 이때 연관된 엔티티들을 데이터베이스에 저장, 수정 또는 삭제할 때, 이러한 작업들을 각각 수행해야 하는 번거로움이 있었습니다.(번거로움 + 수작업 누락으로인한 오류발생) 예를 들어, 하나의 주문(Order)이 여러 주문 항목(OrderItem)과 하나의 배송 정보(Delivery)를 포함하는 상황을 생각해보면, 주문을 데이터베이스에 저장할 때, 주문 뿐만 아니라 모든 주문 항목과 배송 정보도 함께 저장해야 합니다. 이 과정이 수동으로 진행된다면, 코드는 불필요하게 복잡해지고, 데이터 일관성을 유지하는 것이 어려워집니다. 이러한 문제의 해결책으로 `CascadeType.ALL` 이 있다는 것을 알게되었습니다. JPA에서 CascadeType.A..
-
서버공부 시작 { HTTP } : 간단한 웹서버 띄우기백엔드 : 서버공부 2023. 10. 2. 14:06
Java를 이용해서 간단한 웹서버를 띄워볼 것입니다. 완전한 서버를 구축하기 위해서는 다른 역할을 수행하는 클래스들이 많이 필요하지만, 여기서는 많은 클래스들 중 RequestHandler를 통해 HTTP 메세지를 읽고 쓰는 등의 처리하는 과정을 살펴보겠습니다. 먼저 전체 코드는 아래와 같습니다. package webserver; import db.MemoryUserRepository; import db.Repository; import model.User; import http.util.IOUtils; import http.util.HttpRequestUtils; import java.io.*; import java.net.Socket; import java.nio.file.Files; import j..
-
서버공부 시작 {프로토콜 공부} : TCP/UDP부터 HTTP/HTTPS백엔드 : 서버공부/NetWork 2023. 9. 27. 00:41
HTTP 와 HTTPS 를 학습하기위한 빌드업. TCP / UDP TCP UDP (UDT 아님) TCP는 통신에 있어서 아주 중요한 프로토콜입니다. IP만으로 데이터를 주고 받기에는 문제가 많은데, 먼저 전송할 데이터가 큰 경우 인터넷 대역폭을 너무 많이 차지하는 문제가 있습니다. 그래서 TCP는 데이터를 작은 단위인 패킷으로 쪼개서 보냅니다. 패킷으로 나누어진 데이터들은 전송될때 유실되거나 순서가 섞일 수 있는데, TCP는 순서보장 및 재전송 등의 기능을 통해 오류를 검출하고 재전송을 송신자 측에 재전송을 요청하는 등 통신의 신뢰성을 보장합니다. UDP도 통신에서 중요한 프로토콜 입니다. 비연결형 프로토콜이라고 불리는 UDP는 패킷이 제각각 다른 경로로 이동합니다. 순서보장이나, 병목현상을 방지하기위한..
-
서버공부 시작{ TCP/IP } : 인터넷의 열쇠백엔드 : 서버공부/NetWork 2023. 9. 2. 17:29
인터넷의 열쇠 TCP/IP 물리적으로 떨어져 있는 컴퓨터와 장치들이 서로 통신하고 데이터를 교환하는 것은 지금 우리 생활에서 무척이나 중요한 역할을하고 있고 당연한 일입니다. 하지만 몇 십 년 전까지만 해도 이러한 컴퓨터 간 통신은 큰 어려움을 동반한 일이었습니다. 그 동안 데이터를 공유하거나 통신하기 위해서는 복잡한 방법들과 많은 과정이 필요했습니다. 그런데, 이 모든 것이 바뀌었던 시점이 있었습니다. 1960년대 후반과 1970년대 초반, 전세계적으로 컴퓨터 네트워크가 확장되면서 'TCP/IP'라는 개념이 등장하게 되었습니다. 이 개념은 현재까지도 네트워크 통신의 기초를 이루는 중요한 요소 중 하나로 자리 잡고 있습니다. TCP/IP는 "Transmission Control Protocol/Inter..
-
Node.js로 라우팅 실습하기백엔드 : 서버공부/Node.js 2023. 8. 18. 20:00
이번 글에서는 Node.js와 express 라는 것을 통해 간단한 라우팅을 해보겠습니다. 코딩이라고해서 모든 필요한 코드들을 처음부터 끝까지 직접짜는것은 굉장히 비효율적이고 실제로 그렇게 이루어지지 않습니다. Node.js를 사용하여 코딩할때도 마찬가지입니다. Node.js를 지원하는 express라는 라이브러리를 이용해서 서버코드를 작성할 것 입니다. Express라이브러리 설치는 터미널을 통해 이루어지게됩니다. npm을 통해 터미널에 명령어를 입력해 다운받아보겠습니다. 터미널에 아래와 같은 명령어를 입력합니다. npm init entry point 입력만 잘해주고 나머지는 공란으로 두고 엔터치기 이 명령어를 입력하면 사용한 라이브러를 기록해주는 package.json과 같은 필요한 파일들이 자동으로..
-
Node.js 란?백엔드 : 서버공부/Node.js 2023. 8. 18. 17:40
이번 카테고리에서는 Node.js를 이용해서 html파일을 넘겨주도록하는 기본적인 라우팅을 구현해보겠습니다. 우선 Node.js가 무엇인지에대해 알아보도록 하겠습니다. Node.js란 무엇인가? Node.js를 인터넷에 검색해보면 javascript 런타임이라고 소개하는 것을 쉽게 볼 수 있습니다. javascript는 Html을 조작하기 위한 언어로 Html에 종속된 언어입니다. javascript는 웹페이지를 좀더 다이나믹하게 바꿔주는 역할을 합니다. 이 javascript해석은 chrome과 같은 브라우저가 담당합니다. 그 중 chrome은 javascript해석 도구로서 V8이라는것을 만들었습니다. 이 V8에 부가적인 기능을 추가해서 그 자체로 출시를 하게 되는데 이것이 Node.js입니다. No..
-
AWS 계정 생성과 리전 선택백엔드 : 서버공부/Django 2023. 8. 9. 13:30
장고 카테고리지만 AWS클라우드를 기반으로한 장고 웹 애플리케이션을 개발해 보는게 목표임으로 초반은 AWS에대한 기본적인 준비 및 개념설명이 주를 이룰 것 같다. AWS계정 생성AWS를 사용하기 위해서는 AWS의 계정이 있어야한다. https://aws.amazon.com/ko/ 를 접속해서 계정을 생성해보도록 하자.해당 홈페이지에서는 계정 생성 뿐만 아니라, 자습서와 AWS 프리 티어에 대한 설명 및 링크를 제공하고 있다. '무료로 시작, 무료 계정 생성'을 클릭하여 가입을 진행한다.AWS 계정을 생성하면 12개월 동안 무료로 이용할 수 있으며, 12개월이 지나면 이용하는 서비스에 따라 사용한만큼 요금이 발생한다. 계정 생성시 유형을 선택해야하는데 회사나,학원 또는 학교에서 사용할 용도면 '프로페셔널'..
-
AWS기반의 Django 웹 애플리케이션백엔드 : 서버공부/Django 2023. 8. 8. 21:39
지금까지 장고에대한 기본적인 내용을 공부했으므로 이제는 AWS클라우드를 기반으로한 장고 웹 애플리케이션을 개발하는 공부를 해보려고합니다. 공부는 AWS 클라우드 기반의 Django 웹 애플리케이션이라는 책을 기반으로 할 예정입니다. AWS기본 개념 기존에 서버를 확장하는데에는 신규서버를 구매하고, 해당 서버를 IDC(Internet Data Center)에 입주시켜야하기 때문에 많은 비용과 시간이 필요하다는 문제가 있었다. 이 문제를 해결한 것이 클라우드 컴퓨팅이다. 클라우드 컴퓨팅은 미리 제공사에서 대량의 서버를 보유하고, 해당 서버를 각 기업이나 개인에게 제공하여 요금을 부과하는 형태로 구성되어있다. 그렇기 때문에 고객은 간단한 과정을 거쳐 서비스를 이용할 수 있고, 지출을 최소화 할 수 있다. 지금..