전체 글 146

chapter 01. 소프트웨어 개발 방법론 (1)

애자일(Agile) ① 애자일(Agile) 방법론의 개념 [2020년 2회] 애자일 방법론은 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발 방법론 개발 기간이 짧고 신속하며, 폭포수 모형에 대비되는 방법론으로 개발과 함께 즉시 피드백을 받아서 유동적으로 개발할 수 있음 ② 애자일 방법론 등장 배경 애자일 방법론은 기존 개발 방법론의 한계를 극복하기 위해 등장했다. 등장 배경 설명 소프트웨어 개발 환경의 변화 - 소프트웨어 개발 트렌드가 모바일 환경으로 변화 - 시장 적시성과 잦은 배포의 중요성 부각 기존 개발 방법론의 한계 - 전통적 방법론은 문서 및 절차 위주로 변화에 신속한 대응이 어려움 - 빠르게 적용하고 효율적으로 개발..

Chapter 08. EC2 서버에 프로젝트를 배포해 보자 (2)

8.2 배포 스크립트 만들기 배포 : 작성한 코드를 실제 서버에 반영하는 것 git clone 혹은 git pull을 통해 새 버전의 프로젝트 받음 Gradle이나 Maven을 통해 프로젝트 테스트와 빌드 EC2 서버에서 해당 프로젝트 실행 및 재실행 이러한 과정을 배포할 때마다 개발자가 하나하나 명령어를 실행하는 것은 불편함이 많음 -> 그래서 이를 쉘 스크립트로 작성해 스크립트만 실행 * 쉘 스크립트 : .sh라는 파일 확장자를 가진 파일 / 리눅스에서 기본적으로 사용할 수 있는 스크립트 파일의 한 종류 * 빔 : 리눅스 환경과 같이 GUI(원도우와 같이 마우스를 사용할 수 있는 환경)가 아닌 환경에서 사용할 수 있는 편집 도구 일단 ~/app/step1에 deploy.sh 파일을 하나 생성 vim ..

[스프링 입문] 스프링 웹 개발 기초

1. 정적 컨텐츠 서버에서 하는 일 없이 파일 그대로 웹브라우저에 내려주는 것 원하는 파일을 넣으면 그대로 반환 2. MVC와 템플릿 엔진 서버에서 html 변형을 해서 웹 브라우저에 내려주는 것 MVC : Model, View(화면을 그리는), Controller(비지니스 로직과 관련 내부적인 것을 처리하는 것에 집중) @RequestParm ex) @RequestParm("name")이면 localhost:8080/hello-mvc?name=spring!처럼 넘겨줘야함 3. API json이라는 포멧으로 클라이언트에 내려주는 것 @ResponseBody : http에서 body부에 return 값을 직접 출력하게됨. 객체를 반환하면 객체가 JSON으로 변환됨 HTTP의 BODY에 문자 내용을 직접 반..

프로젝트 환경설정

1. 라이브러리 살펴보기 Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 Gradle이나 Maven 같은 빌드 툴들은 의존관계를 관리해준다. 예를 들어, spring-boot-starter-web 라이브러리를 댕기면(?) 이 라이브러리에서 필요한 spring-boot-starter-tomcat 등등의 라이브러리도 가져옴. 스프링 부트 라이브러리 spring-boot-starter-web spring-boot-starter-tomcat : 톰캣 (웹 서버) spring-webmvc : 스프링 웹 MVC spring-boot-starter-thymeleaf : 타임리프 템플릿 엔진 (View) spring-boot-starter(공통) : 스프링 부트 + 스프링 코어 + 로깅 spring-boot ..

Chapter 08. EC2 서버에 프로젝트를 배포해 보자 (1)

8.1 EC2에 프로젝트 Clone 받기 먼저 깃허브에서 코드를 받아올 수 있게 EC2에 깃을 설치한다. sudo yum install git 설치가 완료되면 다음 명령어로 설치 상태를 확인한다. git --version 깃이 성공적으로 설치되면 git clone으로 프로젝트를 저장할 디렉토리를 생성한다. mkdir ~/app && mkdir ~/app/step1 생성된 디렉토리로 이동한다. cd ~/app/step1 내 깃허브 웹페이지에서 https 주소를 복사한다. 그리고 복사한 https 주소를 통해 git clone을 진행한다. git clone 복사한 주소 git clone이 끝났으면 클론된 프로젝트로 이동해서 파일들이 잘 복사되었는지 확인한다. cd 프로젝트명 ll 그리고 코드들이 잘 수행되는..

Chapter 07. AWS에 데이터베이스 환경을 만들어보자 - AWS RDS (3)

7.3 내 PC에서 RDS에 접속해 보기 로컬 PC에서 RDS로 접근하기 위해서 RDS의 보안 그룹에 본인 PC의 IP를 추가한다. RDS의 세부 정보 페이지에서 [보안 그룹] 항목을 클릭한다. RDS의 보안 그룹 정보를 그대로 두고, 브라우저를 새로 열어본다. 그래서 브라우저 다른 창에서 보안 그룹 목록 중 EC2에 사용된 보안 그룹의 그룹 ID를 복사한다. 복사된 보안 그룹 ID와 본인의 IP를 RDS 보안 그룹의 인바운드로 추가한다. 인바운드 규칙 유형에서는 MYSQL/Aurora를 선택하면 자동으로 3306 포트가 선택된다. 보안 그룹의 첫 번째 줄 : 현재 내 PC의 IP를 등록 보안 그룹의 세 번째 줄 : EC2의 보안 그룹을 추가한다. 이렇게 하면 EC2와 RDS 간에 접근이 가능하다. RD..

Chapter 07. AWS에 데이터베이스 환경을 만들어보자 - AWS RDS (2)

7.2 RDS 운영환경에 맞는 파라미터 설정하기 RDS를 처음 생성하면 몇 가지 설정을 필수로 해야 한다. 우선 다음 3개의 설정을 차례로 진행한다. 타임존 Character Set Max Connection 왼쪽 카테고리에서 [파라미터 그룹] 탭을 클릭해서 이동한다. 오른쪽 위의 [파라미터 그룹 생성] 버튼을 클릭한다. 세부 정보 위쪽에 DB 엔진을 선택하는 항목이 있다. 여기서 방금 생성한 MariaDB와 같은 버전을 맞춰야 한다. 해당 파라미터 그룹을 클릭한다. 다음으로 Character Set을 변경한다. 이는 항목이 많다. 아래 8개 항목 중 character 항목들은 모두 utf8mb4로, collation 항목들은 utf8mb4_general_ci로 변경한다. utf8과 utf8mb4의 차이..

Chapter 07. AWS에 데이터베이스 환경을 만들어보자 - AWS RDS (1)

웹 서비스의 백엔드를 다룬다고 했을 때 애플리케이션 코드를 작성하는 것만큼 중요한 것이 데이터베이스를 다루는 일이다. 규모 있는 회사에서는 데이터베이스를 전문적으로 처리하는 DBA라는 직군 담당자들이 있다. 해당 전문분야의 담당자가 있기에 상대적으로 개발자가 데이터베이스를 전문적으로 다룰 일이 적다. 다만 그건 대용량/대량의 데이터를 다루기 때문에 전문성이 필요한 것이지, 백엔드 개발자가 데이터베이스를 몰라도 된다를 의미하지는 않는다. 스타트업이나 개발 인원수가 적은 서비스에선 개발자가 데이터베이스를 다뤄야만 한다. 어느 정도 데이터베이스 구축, 쿼리 튜닝에 대해서 기본적인 지식이 필요하다. 이번 장에서는 데이터베이스를 구축하고 앞 장에서 만든 EC2 서버와 연동을 해보겠다. 다만, 직접 데이터 베이스를..