전체 글

    Model1 vs Model2

    Model 1JSP 페이지가 클라이언트의 요청을 받는 것부터 응답까지 담당합니다. View 와 Controller 부분이 JSP 페이지에서 수행이 되고, 자바빈에서 Model 부분을 담당합니다. 페이지의 흐름이 단순하기 때문에 개발이 간편하고 개발 속도가 빠릅니다. 반면, 비지니스 로직과 뷰 사이의 구분이 모호해서 디자이너와의 협업이 힘들고, 유지보수가 힘듭니다. 빠른 개발이 필요하고 복잡하지 않은 프로젝트에 적합합니다. Model 2Servlet 클래스가 Controller 부분을 담당하고, 자바빈/자바클래스가 Model, JSP페이지가 View를 담당합니다. 비지니스 로직과 뷰 사이의 구분이 뚜렷하고, JSP 페이지에서의 코드가 간결해지기 때문에 디자이너와의 협업이 편하고, 유지보수가 쉬워집니다. 구..

    [web] textarea 줄바꿈

    게시판을 구성할 때 글내용을 textarea 안에 입력받고 DB로 보내서 저장하도록 하였는데, 확인해보니 엔터키를 입력한 부분에서 줄바꿈이 되지 않고 그냥 띄어쓰기로 나타나는 문제가 있었다. 실제로 DB안에 데이터에는 엔터가 입력된채로 저장이 되는 데, 이것을 다시 select로 가져올때에 공백으로 인식하는 듯 하였다. 해결방법은 view에서 controller로 data를 넘겨줄 때, 엔터입력한 부분을 html tag인 로 입력을 해주는 것이다. 1234567891011@RequestMapping(value="/sample/insertBoard") public ModelAndView insertBoard(CommandMap commandMap, HttpServletRequest request) thro..

    S3 File Upload MultipartFile

    AWS S3는 file을 저장하고 관리하는 데이터를 안전하게 보관할 수 있는 스토리지 서비스입니다. S3에서는 Burket이라고 하는 이름으로 스토리지를 관리하고 접근하게 되고 AWS SDK를 이용해서 file upload download 를 하게 됩니다. S3에서는 file 하나하나를 객체로 접근합니다. Maven 프로젝트를 기준으로 dependency 설정을 하여 SDK를 다운받아야 합니다.12345 com.amazonaws aws-java-sdk 1.11.106cs S3에 접근하기 위해서 접근권한이 필요합니다.IAM에서 User 생성을 하고add permissions로 S3관련된 권한을 줍니다. security credentials 탭에서 create access key로 액세스 키를 생성합니다. ..

    프로젝트 코드 라인수 확인하기

    프로젝트 코드라인수 확인하는 방법입니다. 출처는 stackoverflow입니다. http://stackoverflow.com/questions/26881441/can-you-get-the-number-of-lines-of-code-from-a-github-repository 리눅스를 이제 막 공부시작해서 자세한 설명은 생략하고 하는 방법만 알아보겠습니다. github에 올라가있는 프로젝트를 대상으로 라인수를 확인하고 싶다면, bash shell에서 cloc 이라는 프로그램을 install합니다. 1sudo apt-get install cloccs하면 cloc이 install 됩니다.1git clone --depth 1 https://github.com/pch8388/origin.gitcsgit clone..

    try-with-resources

    기존의 Java라고 하면 이제 공부를 하는 입장에서 할말은 아니긴 한거 같지만, 어쨋든 기존의 코드들을 보면 대부분이 try - catch 문에서 자원을 해제하느라 소스가 지저분해 지는 경향이 있다고 생각한다. 이클립스가 경고를 띄워주긴 하지만 가독성이 떨어지는 편이긴하다. JDK 1.7 version 부터 try - with - resources 문법이 등장하여 코드가 더욱 간결해졌다. 시중의 많은 서적들이 (JDK구버전을 기준으로 쓰여진 책이 많기때문에) try-catch문만 소개하고 있다. 두 문법의 코드를 비교해보겠다. try - catch123456789101112131415161718192021222324252627282930313233import java.io.*; class DataInpu..