본문 바로가기

Clone Coding6

[Chapter8] EC2 서버에 프로젝트 배포하기 EC2에 깃을 설치하고 프로젝트를 Clone 합니다. 코드들이 잘수행되는지 테스트로 검증해봅니다! 배포스크립트 작성하기 배포 : 작성한 코드를 실제 서버에 반영 하는것 - git clone 혹은 git pull을 통해 새버전 프로젝트를 받음 - Gradle 이나 Maven을 통해 프로젝트 테스트와 빌드 - EC2 서버에서 해당프로젝트 실행 및 재실행 위 과정을 배포할때마다 명령어를 실행하는 것은 불편함으로 쉘스크립트를 작성합니다. 쉘스크립트 : 리눅스에서 사용할수있는 스크립트 파일의 한종류 Vim : GUI 환경이 아닐경우 사용할수있는 편집도구 deploy(배포).sh 를작성합니다. 오타 책에 오타가 하나있는데 >> {pgrep -f 중괄호 표시가 되어있었다. 문법오류가 있어서 빌드가 안되었다. 쉘스크립.. 2023. 10. 31.
[Chapter7] AWS에 데이터 베이스 환경 만들기(RDS) AWS RDS 웹 서비스 백엔드를 다룬다고 했을때, 에플리케이션 코드 작성만큼 중요한것이 DB 다루는 일입니다. 규모가 큰 회사는 DBA 직군 담당자가 있으나, 대용량의 경우 이기때문에 전문성이 필요합니다. 백엔드 개발자가 DB를 몰라도 된다를 의미하는게 아니라, 인원이 적은 서비스에선 개발자가 DB를 다뤄야합니다. AWS 에서는 모니터링, 알람, 백업, HA 구성등을 지원하는 RDS(Relational Database Service)를 제공합니다. RDS 인스턴스 생성하기 AWS에 로그인후 RDS를 검색하고 데이터 베이스 생성을합니다. 책에서는 MariaDB를 사용합니다. DB는 Mysql, MariaDB, PostgreSQL을 추천합니다. - 오픈소스 이므로 상용데이터 베이스 보다 가격이 저렴합니다... 2023. 10. 28.
[Chapter4] 머스테치로 화면 구성하기 템플릿 엔진 - 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어 클라이언트 템플릿 엔진 브라우저에서 화면을 생성합니다. 서버에서는 Json 혹은 Xml 형식의 데이터만 전달하고 클라이언트에서 조립합니다. ex) View, React.js 서버 템플릿 엔진 서버템플릿 엔진은 서버에서 구동됩니다. Jsp를 예로 들면 서버에서 java코드를 문자열로 만들어 HTML로 변환하여 브라우저로 전달합니다. 머스테치 - 수많은 언어를 지원하는 가장 심플한 엔진입니다. - .java / .js 서버템플릿 , 클라이언트 템플릿을 둘다 지원합니다. - 문법이 다른템플릿 엔진보다 심플 합니다. 머스테치 사용법 - 플러그인 'mustache' 설치 - 의존성 등록 gradle.build 파일 compile('.. 2023. 10. 25.
[Chapter3] SpringBoot JPA JPA 사용 이유 - 반복되는 CRUD(Create, Read, Update, Delete)인한 코드반복이 일어납니다. - 데이터베이스는 어떻게 데이터를 저장할지 초점이 맞춰져 있으나, 객체지향 프로그래밍 언어는 기능과 속성을 관리하는 기술이므로 페러다임 불일치가 일어납니다. User user = findUser(); Group group = user.getGroup(); 객체지향에서는 User과 Group은 부모 자식 관계임을 알수있습니다. User user = userDao.findUser(); Group group = groupDao.findGroup(user.getGroupId()); 데이터베이스의 경우 User, Group을 따로 조회하게 됩니다. (Dao = Data Access Object로.. 2023. 10. 21.
[Chapter2] 스프링 부트와 AWS로 혼자구현하는 웹서비스 단위테스트 - TDD 첫번째 단계인 기능 단위의 테스트 코드를 작성하는것 이점 - 코드를 수정 할때마다 println()을 통해 눈으로 검증하지 않아도 된다. - 규모가 큰 서비스에서 새로운 기능을 추가할때 이전의 기능을 보장해준다. 단위테스트를 하기위해 간단한 어플을 만듭니다. @SpringBootApplication - @SpringBootApplication이 있는 위치부터 설정을 읽기때문에 항상 프로젝트의 최상단 위치 - 스프링 부트 자동설정, 스프링 Bean 읽기 생성 모두 자동설정 - SpringApplication.run을 통해 내장WAS 실행 > Tomcat 설치필요X 스프링부트는 내장 WAS를 권장하는데 이를통해 '언제 어디서나 같은 환경에서 스프링 부트를 배포' 가능 @SpringBoo.. 2023. 10. 17.
[Junit] java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test 스프링부트에 대한 경험이 없어서 위 책을 실습하던중 에러가 발생했습니다. java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration 해석하면 스프링부트설정 에노테이션을 찾을수 없다는 내용이였습니다. 결론은 패키지 이름을 오타가 나서 작동 하지 않았던것 이였는데 어떻게 설정 파일을 찾는지 궁금 하여 찾아 보았습니다. 테스트 패키지 com.bookstore.www 테스트 클래스는 자신의 윗패키지 순서대로 설정파일을 찾습니다. 1. com.bookstore.www 2. com.bookstore 3. com 해결방법은 설정패키지를 테스트 패키지보다 상위패키지에 두거나 같은 패키지에 둔다면 해결됩니다. 2023. 10. 14.