try() 문법 try(InputStream in = connection.getInputStream();) { } catch { } try() 문법은 JDK1.7 에서 추가된 문법으로 Closable을 implements 받고있는 객체를 사용할때 자동으로 close 해준다. HTML Method HTML form은 기본적으로 GET, POST 메소드만 사용 가능함. REST API 설계 기반으로 개발할때 사용되는 PUT, DELETE 등의 메소드는 AJAX와 같은 비동기통신 라이브러리에서 사용할 수 있다. 302 redirection의 필요성 post로 서버에게 요청을 보낸 뒤 새로고침을 하면 보낸 데이터 정보가 그대로 남아있어서 그 데이터가 다시 전송되는 문제가 있음 완벽히는 아니지만 어느정도 이 문제..
MVC구조 이해를 위한 MVC프레임워크 직접구현 구현 질문/답변 게시판 회원가입 로그인/로그아웃 개인정보 수정 실습환경 GitHub JDK 8 eclipse Maven 프로젝트 Fork github.com/lurutia/web-application-server Fork 후 eclipse에서 clone한 후 실습을 진행하도록 하는것이 본인의 소스를 보관할 수 있어서 권장 Fork -> eclipse open perspective -> Git -> git repository 우클릭 -> import projects 원격 서버에 배포 요구사항 ubunutu 14.04 LTS 에 배포한다. AWS에 대한 회원가입, 우분투 운영체제 설치, SSH를 통한 접근은 opentutorials.org/module/1946..
2장 문자열 계산기 구현을 통한 테스트와 리팩토링 이 내용은 위 책의 내용을 공부하기 위해 정리한것입니다. 왜 테스트를 따로 구현할까? main()메소드에 구현하면 생기는 문제점 배포시에 필요가 없지만 함께 배포된다. (배포시 코드를 제거해주는 작업을 해줘야한다) 하나의 main()에서 여러가지 테스트를 동시에 진행하면 복잡도가 상승한다. 테스트 관심사에 따라 method로 분리하더라도 일일이 테스트하고자 하는 메소드만 선택해야 하는것도 불합리함 테스트의 출력결과를 미리 예상한 결과와 수동으로 비교해야함. java project에서 junit 추가하기 Java project를 최초 생성하면 JUnit이 class path에 추가되어있지 않아서 테스트를 실행할 수 가 없다. project-propertie..
개요 동시에 여러 트랜잭션이 존재할 때 다른 트랜잭션에서 변경하거나 삽입한 데이터를 조회 할 수 있는지 여부 트랜잭션 격리 수준 4단계 READ UNCOMMITTED READ COMMITTED REFEATABLE READ SERIALZABLE READ UNCOMMITTED 트랜잭션의 변경 내용이 COMMIT 되기 전에도 다른 트랜잭션에서 조회 할 수 있습니다. 정합성에 문제가 많은 격리수준으로 사용하지 않는것이 좋습니다. READ COMMITTED 다른 트랜잭션에서 Commit하기 전에 변동된 내용은 조회되지 않습니다. 즉 Dirty Read가 발생하지 않습니다. Undo 영역에 백업된 데이터 값을 가져옵니다. 하나의 트랜잭션에서 같은 SELECT 쿼리를 여러번 수행하였을 때 다른 결과가 나올 수 있습니..
서론 WEB 서버와 WAS를 분리하는 이유를 단순히 WEB서버는 클라이언트의 요청에 대해서 정적파일을 응답하고 WAS는 동적인 요청에 대해서 응답해 부하를 분산시켜준다로 알고 있었고 과거에는 WAS와 WEB서버간의 성능차이가 존재하여 분리하였지만 최근에는 WAS도 충분히 WEB서버의 역할을 할 수 있어서 성능에 유의미한 차이는 없다는 의견도 봤었다. Spring + react 조합으로 AWS에 배포하면서 Spring은 EC2에 React는 S3에 배포했었다. S3가 정적 WEB서버 역할을 맡은셈인데 이번기회에 WAS와 WEB 서버를 분리해야 하는 이유를 정확하게 알고가는게 좋겠다고 생각했다. 분리하는 이유 검색해본 결과 대부분의 설명글에서 크게 4가지의 이유를 알수 있었다. 역할을 분담해 부하 방지 WE..
개요 최근 Checked Exception과 Runtime Exception의 차이에 대해서 질문을 받았는데 구체적인 차이를 모르고 있었다가 조사를 해보니 Rollback 전략에 대해서 큰 차이가 있어서 생각보다 신중한 전략이 필요했는데 알지 못했다는 점이 스스로도 아쉬웠습니다. JAVA에는 두가지 유형의 예외가 있습니다. Checked Exception과 Unchecked Exception 둘의 차이를 표로 비교해보면 아래와 같습니다. Checked exception Unchecked Exception 정의 Exception을 상속받은 클래스중 Runtime Exception을 제외한 모든 Exception Runtime Exception 하위 Exception 발생 이유 주로 외부의 영향으로 발생 주..
개요 SOILD는 Robert C. Martin이 정한 객체지향 디자인(OOP)의 5가지 원칙의 약어입니다. 프로젝트가 성정함에 따라 유지 관리 및 확장성을 고려하여 소프트웨어를 개발할 수 있게 도와줍니다. S - SRP(단일책임의 원칙 : Single Responsibility Principle) O - OCP(개방폐쇄의 원칙 : Open Close Principle) L - LSP(리스코브 치환의 원칙 : The Liskov Substitution Principle) I - ISP(인터페이스 분리의 원칙 : Interface Segregation Principle) D - DIP(의존성 역전의 원칙 : Dependency Inversion Principle) 하나하나 알아보도록 하겠습니다. S - S..
javascript module 웹 개발을 할 때 javascript 는 필수적으로 사용되는데, module을 관리하는 방법은 방법이 다양합니다. CDN을 통해서 import 하거나 js를 직접 다운받아서 프로젝트에 포함하는 방법도 있겠지만 플러그인을 통해서 javascript library를 관리하는 방법을 기술합니다. Maven frontend-maven-plugin 라이브러리 사용 https://github.com/eirslett/frontend-maven-plugin eirslett/frontend-maven-plugin "Maven-node-grunt-gulp-npm-node-plugin to end all maven-node-grunt-gulp-npm-plugins." A Maven plugi..