다음은 글은 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은 구조화된 ..
다음은 글은 infrean의 "자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]" 강의의 학습 목적으로 작성된 것입니다. 강의의 디테일한 내용이나, 코드 등은 빠져있을 수 있습니다. 0. 목표 1. 스프링 프로젝트를 설정하여 실행할 수 있다. 2. 서버란 무엇인지, 네트워크와 HTTP, API는 무엇인지, JSON은 무엇인지? 등 서버 개발에 필요한 다양한 개념을 이해한다. 3. 스프링 부트를 이용하여 간단한 GET, POST API를 만들 수 있다. 1. 스프링 프로젝트 시작하기 기존의 스프링 프로젝트를 다운로드하여 시작할 수도 있지만, Spring Initializr를 이용하여 새로운 프로젝트를 시작하는 방법을 알아보자. https://star..
다음은 글은 infrean의 "자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]" 강의의 학습 목적으로 작성된 것입니다. 강의의 디테일한 내용이나, 코드 등은 빠져있을 수 있습니다. 0. JAVA란? JDK, JVM, JRE, gradle, maven ...? 들어보기는 했지만 정확한 의미를 알고 있지 못했다. JDK, JVM, JRE을 먼저 설명하고, Gradle, maven을 이후에 설명하겠다. 1. JAVA라는 언어를 컴퓨터가 어떻게 알아들을까? 처음 질문은 이렇게 시작한다. 컴퓨터는 원론적으로 0과 1 밖에 알지 못한다. 우리가 화면에서 보는 high-level의 언어를 0,1(바이너리 코드)로 이루어진 machine language로 변환..