
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..
개요 최근 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..
확장자만 구하기 String 클래스 이용 int pos = fileName.lastIndexOf( "." ); String result = fileName.substring( pos + 1 ); FilenameUtils.getExtension 이용 String extension = FilenameUtils.getExtension(file.getOriginalFilename()); org.apache.commons.io.FilenameUtils 의 getExtension() 메서드를 쓸 수 있습니다. ex) example.txt 일 경우 "txt"가 리턴 확장자를 제외한 파일명만 구하기 String 클래스 이용 String fileName = file.getName(); int pos = fileName...
DriverManager JDBC 드라이버를 이용해 데이터베이스와 커넥션을 만드는 역할을 합니다. DriverManager는 Class.forName() 메소드로 생성됩니다. forName() 메소드는 driver class를 찾지못할 경우 ClassNotFoundException라는 Chekced Exception을 발생시키므로 예외 처리를 해야합니다. DriverManager의 모든 메소드는 static이므로 반드시 객체를 생성시킬 필요는 없습니다. getConnection() 메서드로 Connection 인터페이스 구현객체를 생성합니다. Connection 인터페이스 DriverManager가 Connection을 만들고 Connection 인터페이스가 구현된 클래스의 객체로 표현됩니다. SQL문장..