강의

📝 학습 목표 AWS의 VPC를 이해한다. 서버가 어떻게 구축되는지 이해한다. 🤔 AWS에서 리전과 가용영역 AWS를 사용해본 사람이라면, 리전과 가용영역이라는 말을 들어봤을 것이다. 리전과 가용영역은 Amazon Web Services (AWS)의 인프라스트럭처를 구성하는 중요한 요소이다. 간단히 설명하게 넘어가보자! 💡리전 (Region) AWS에서 수많은 컴퓨팅 서비스를 제공하려면, 당연히 대규모 서버 컴퓨터를 모아둔 중앙 서버가 필요할 것이다!! 만약에 전세계 컴퓨팅을 감당할 서버 컴퓨터가 단 1개 있다면? 1. 성능 한계: 단일 서버는 처리할 수 있는 작업량이 한정되어 있다. 모든 자원이 북미에 있다면, 지구 반대편의 아시아 지역에서는 서비스가 너무 너무 느릴 것이다! 2. 고가용성 및 내결함성..
📝 학습 목표 서버의 정의와 역할을 이해한다. 서버가 어떻게 구축되는지 이해한다. 🤔 서버란 무엇일까? 우리는 아주 흔히 "SERVER" 라는 단어를 쓴다. 그러나 우리는 아주 익숙하게 사용하는 단어에 대해 정의를 물어보면 갑자기 머리가 하얗게 되어버린다.. 너무 당연해서 깊게 생각한 적이 없는 것이다. "서버가 정확히 무엇이고, 어떤 형태로 존재해?" 이러한 물음에 대답할 수 있는가? 그렇다면 서버가 무엇일까??? 결론부터 말하자면, - OS에 의해 동작하는 프로세스 이며, - 클라이언트의 역할을 하는 프로세스와 소켓을 통해 IPC를 수행하는 것 정도로 정리할 수 있겠다. ✒️ 0. 들어가기 전 이번 포스팅의 목표는 서버와 클라이언트가 각각 하나의 프로세스로써 어떻게 DATA를 주고받는지 이해하는 것!..
다음은 글은 infrean의 "자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]" 강의의 학습 목적으로 작성된 것입니다. 강의의 디테일한 내용이나, 코드 등은 빠져있을 수 있습니다. 1. EC2에 접속하여, 리눅스 명령어 다루기 1-1. 빌린 가상 서버에 접속하기 방법 1) 다운로드 받은 키 페어 (pem키)를 이용하기 1. 우리가 접속하려는 EC2의 IP 주소 2. 다운로드 받은 키 페어 3. 접속하기 위한 프로그램 (git bash 혹은 mac terminal) 바로 접속을 시도하면, 다음과 같이 에러가 뜬다... 이유는 키 페어의 권한이 디폴트로 모두 허용되어있다. 본인 말고는 모두 거부하도록 바꿔주자. % chmod 400 file.pem ..
다음은 글은 infrean의 "자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]" 강의의 학습 목적으로 작성된 것입니다. 강의의 디테일한 내용이나, 코드 등은 빠져있을 수 있습니다. 0. 들어가기 전 1) 배포가 무엇인가? 그리고 배포를 위한 준비하기 2) 스프링 서버 실행 시, DB와 같은 설정들을 기존 코드 변경 없이 제어하는 방법을 알아보자 3) Git과 Github에 대해 알아보자 4) AWS의 EC2가 무엇인가? AWS를 통해 클라우드 컴퓨터를 빌려보자 1. 배포란? 최종 사용자에게 SW를 전달하는 과정 사실, 우리가 지금껏 만들었던 도서 관리 서비스는 "로컬"에서 실행/종료 모두 진행된 것이다. Spring과 MySQL 모두 말이다. 그..
다음은 글은 infrean의 "자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]" 강의의 학습 목적으로 작성된 것입니다. 강의의 디테일한 내용이나, 코드 등은 빠져있을 수 있습니다. 1. 책 생성 API 개발하기 - API 스펙 • HTTP Method: POST • HTTP Path: /book • HTTP Body (JSON) { "name": String // 책 이름 } • 결과 반환 X (HTTP 상태 200 OK이면 충분하다) -> book 테이블 설계 create table book ( id bigint auto_increment, name varchar(255), primary key (id) ); => 직접 설계하고, 개발해보자! ..
다음은 글은 infrean의 "자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]" 강의의 학습 목적으로 작성된 것입니다. 강의의 디테일한 내용이나, 코드 등은 빠져있을 수 있습니다. 1. 문자열 SQL을 직접 사용? 우리는 그동안 SQL 문을 Repository 코드안에서 직접 작성했다. 1-1. SQL을 직접 작성하면 생기는 단점 1. 사람이 문자열을 직접 작성하기 때문에 실수가 많이 발생할 수 있다. ex) SELECT * FROM user WHER id = ? Intellij Ultimate ver. 에서는 일부 SQL 에러를 도와준다.(코드에는 빨간줄이 그어짐) 그러나Repository 파일 안에는 빨간색 에러가 뜨지 않는다. 컴파일 시점에..
다음은 글은 infrean의 "자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]" 강의의 학습 목적으로 작성된 것입니다. 강의의 디테일한 내용이나, 코드 등은 빠져있을 수 있습니다. 1. 좋은 코드(Clean Code)는 왜 중요한가? 코드는 요구사항을 표현하는 언어이다. 개발자는 요구사항을 구현하기 위해 기존 코드를 읽고 작성한다. 코드를 읽는 것은 필수적이고 피할 수 없다. 특히, 협업에서는 "남의 코드를 읽고 해석"하는 일이 대부분.... 안 좋은 코드가 쌓이면, 시간이 지날수록 생산성이 낮아진다. ... 더 자세한 내용은 로버트 C. 마틴의 책 를 읽어보자... 그 중에서 가장 소프트웨어 공학적으로 강조하는 것은 "단일 책임 원칙(SRP)"..
다음은 글은 infrean의 "자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]" 강의의 학습 목적으로 작성된 것입니다. 강의의 디테일한 내용이나, 코드 등은 빠져있을 수 있습니다. 1. Database와 MySQL 1-1. RDB(Relational Database) = 관계형 데이터베이스 이는 테이블 형식으로 데이터를 저장하고 관리하는 데이터베이스 시스템입니다. 데이터를 행(row)과 열(column)의 테이블로 표현. 테이블 간에는 관계(relationship)가 있을 수 있음. 각 테이블의 행은 유일한 식별자(primary key)를 가짐. ex) MySQL 1-2. SQL(Structured Query Language) SQL은 구조화된 ..