프로그램의 오류 두가지 1. 컴파일 에러 (컴파일 중 발생하는 에러) 2. 런타임 에러 (어플리케이션 실행 중 발생하는 에러) 자바 1. 에러 - JVM 실행에 문제 -> 개발자가 해결할 수 없음 2. 예외 - 사용자의 잘못된 조작 or 개발자의 잘못된 코딩으로 발생 둘의 공통점 : 둘다 프로그램이 예기치 못하게 종료된다 예외는 예외처리를 통해 프로그램의 종료를 막고 정상 실행할 수 있다 - Exception 클래스는 자바 모든 예외의 조상이 되는 클래스 해결방법 : 예외가 발생하는 시점에 RuntimeException클래스를 상속받아 만든 예외처리 메소드를 실행시켜줘야 한다 Springboot에서의 예외처리 방법 3가지 1. @ControllerAdvice - 전역 예외처리 지원 2. @Exceptio..
Gradle을 이용한 멀티 모듈 동아리 프로젝트를 시작하며 프로젝트 구조를 어떤식으로 할지 논의 중 멀티 모듈 구조를 사용해 보기로 해였다. 저번 기수때 멀티 모듈 구조를 사용해 봤지만 내가 프로젝트 초기 설정을 하지 않아서 자세히 알아보지는 않았는데 이번에 초기 설정을 하게 되면서 멀티모듈의 필요성과 구조에 대하여 학습하고 정리하기로 하였다. 멀티 모듈 이거 왜 쓰는거야? 사실 아직도 완벽하게 이래서 써야하는군! 이라고는 이해하지 못했다. 하지만 구글링을 해보며 어느정도 느낌을 알것 같다.. 프로젝트를 사용자와의 접점을 담당하는 서버프로젝트와 DB와의 접점을 담당하는 서버프로젝트로 구분한다면 공통으로 사용되는 클래스들은 어떻게 다룰 것인가를 생각해보자 가장 직관적인 방법으로는 복사 & 붙여넣기가 있다 ..
스프링부트 애플리케이션을 히로쿠에 배포하기 동아리에서 진행하게된 springboot기반 애플리케이션을 히로쿠에 배포하는 역할이 주어졌다 . 클라우드 플랫폼은 aws 프리티어 인스턴스만 생성해봐서 히로쿠 사이트에 들어가서 배포하는 방법을 찾아보고 정리하기로 했다. 참고로 heroku의 무료 서버를 이용하였다. 히로쿠 배포 가이드 따라하기 1. 히로쿠(heroku) 사이트에 가입 그리고 로그인 실행 먼저 양식에 따라 회원가입 후 로그인을 진행한다 회원가입은 별거없다 aws 가입보다 덜 복잡함 ㅎ 2. 로그인 후 상단의 Create new app을 통해 애플리케이션을 생성한다 오른쪽 상단에 "Create new app"을 선택하여 새로운 애플리케이션을 생성한다. 애플리케이션을 생성한다는 것은 배포를 위해 히로..
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책 실습 후 이론 정리 목적으로 작성한 자료입니다 참고자료 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 Chap3. 스프링 부트에서 JPA로 데이터베이스 다뤄보자 관계형 데이터베이스의 패러다임 : 어떻게 데이터를 저장할지에 초점 객체지향 프로그래밍 언어 : 메시지를 기반으로 기능과 속성을 한곳에서 관리할지에 초점 = 관계형 데이터베이스와 객체지향 프로그래밍 언어의 패러다임 불일치 발생 -> 데이터 베이스 모델링에만 초점이 맞춰지게 된다 패러다임 일치를 시켜주기 위한 기술이 JPA이다 즉 개발자는 객체지향적으로 프로그래밍을 하고 JPA가 이를 관계형 데이터베이스에 맞게 SQL을 대신 생성해서 실행해준다 -> 더 이상 SQL에 종속적인 개발을 하지 않아..
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책 실습 후 이론 정리 목적으로 작성한 자료입니다 참고자료 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 chap1. 인텔리제이로 스프링 부트 시작하기 인텔리제이 설치 Github 연동 및 프로젝트 생성 chap2. 스프링 부트에서 테스트 코드 작성하기 테스트 코드의 종류 (TDD 테스트, 단위 테스트) TDD란? 테스트가 주도하는 개발 항상 실패하는 테스트 작성 -> 테스트 통과하는 프로덕션 코드 작성 -> 테스트 통과하면 프로덕션 코드 리팩토링 단위 테스트란? 기능 단위의 테스트 코드 작성 단위 테스트 코드를 작성해야 하는 이유 개발 단계 초기에 문제를 발견할 수 있게 해준다 개발자가 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 ..
1. 자바스크립트 개요 출처 입력 1-1. 자바스크립트 특징 - 자바스크립트는 프로토타입 기반의 객체 지향 언어이다. - 자바스크립트는 동적이며, 타입을 명시할 필요가 없는 인터프리터 언어이다. - 자바스크립트는 객체 지향형 프로그래밍과 함수형 프로그래밍을 모두 표현할 수 있다 **프로토타입정리하기 1-2. 프로토타입 자바스크립트의 모든 객체는 프로토타입이라는 객체를 가지고 있다. 모든 객체는 그들의 프로토타입으로부터 속성과 메소드를 상속받는다. 자바스크립트의 모든 객체는 최소한 하나 이상의 다른 객체로부터 상속을 받으며, 이때 상속되는 정보를 제공하는 객체를 프로토타입이라고 한다. var date=new Data(); // 디폴트 프로토타입-object.prototype, 부모 프로토타입-Date.pr..
1. Express.js 디렉토리 구조 출처 입력 셀 전체 선택 0열 선택0열 다음에 열 추가 1열 선택1열 다음에 열 추가 2열 선택2열 다음에 열 추가 0행 선택0행 다음에 행 추가 1행 선택1행 다음에 행 추가 2행 선택2행 다음에 행 추가 3행 선택3행 다음에 행 추가 열 너비 조절 행 높이 조절 디렉토리 설명 예 public 주로 정적파일들을 관리한다 html,img,js 파일들 routers 라우팅처리하는 파일들을 관리한다 index.js(최상위 라우팅 파일),그 외에 라우터모듈화된 파일들 views 뷰 템플린 관련 파일들을 관리한다 node.js 제공 뷰 템플릿(pug,ejs 등) 셀 병합 행 분할 열 분할 너비 맞춤 삭제 2. DataBase 연동(MySQL 기준) 출처 입력 2-1. My..
1. Docker 소개 1-1. Docker란? 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼 1-2. 가상머신과 도커의 차이점? 가상 머신(VM)은 서버 하드웨어를 가상화(또는 직접 관리할 필요성을 제거)하는 반면, 컨테이너는 서버의 운영 체제를 가상화합니다. Docker는 컨테이너를 위한 운영 체제(또는 런타임)입니다. 컨테이너를 실행하려는 각 서버에 Docker Engine이 설치되어 컨테이너를 구축, 시작 또는 중단하는 데 사용할 수 있는 간단한 명령 세트를 제공합니다. (질문하기 ㅠㅠ 이해 안가여 ㅎㅎ) 1-3. Docker의 기능? Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수..