본문 바로가기

SPRING

(86)
Tomcat War 파일로 배포하기 1. 이클립스에서 export - war 파일 내보내기 ROOT.war로 설정한 것은 현재 프로젝트의 cotext root가 '/'로 설정되어있기 때문 (위에 경고 문구는 무시) 2. ROOT.war 파일을 톰캣 폴더에 넣어주기 /usr/local/Cellar/tomcat/9.0.37/libexec/webapps * 기존에 ROOT 폴더가 존재하므로, 이를 ROOT_backup 등 다른 폴더명으로 변경해야함! 3. 터미널에서 톰캣 실행 톰캣을 실행하면 ROOT.war 파일이 폴더로 풀리면서 실행되는 것을 확인할 수 있음 1) 톰캣 서버에서 실행하기 cd /usr/local/Cellar/tomcat/9.0.37/libexec/bin ./startup.sh 2) 톰캣 서버에서 종료하기 cd /usr/loca..
java.sql.SQLException: 로케일을 인식할 수 없습니다. 맥북 소프트웨어 업데이트하고 이클립스 돌리면 위와 같은 에러가 뜬다. 그럴땐 설정에서 지역을 미국으로 바꿨다가 다시 한국으로 돌리면 정상적으로 돌아가는 것을 알 수 있다!
REST API란? REST란? HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD를 적용하는 것 웹에 존재하는 모든 자원 (이미지, 동영상, DB..)에 고유한 URI를 부여해 활용하는 것 HTTP 통신에서 어떤 자원에 대한 CRUD 요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식 어떤 자원에 대해 CRUD 연산을 수행하기 위해 URI로 요청을 보내는 것 Create - post Read - get Update - put(전체 수정), patch(일부 수정) Delete - delete REST 구성 요소 1. 자원 (Resource): URI - 모든 자원에 고유한 ID가 존재하고, 이 자원은 Server에 의존한다. 2. 행위 (Verb): HT..
@Param 어노테이션 언제 쓰는지? Mybatis의 SQL 문장에 다수의 파라미터를 전달할 때는 전달되는 변수들에 꼭 @Param 어노테이션을 붙여줘야한다. 다음과 같이 email, password 두 가지를 전달해야할 경우, delete from tbl_member where email = #{email} and password = #{password} 아래와 같이 mapper 인터페이스에서 전달하고자 하는 변수명 앞에 @Param 어노테이션을 추가해야한다. public void deleteMember(@Param("email") String email, @Param("password") String password); ** 만약 전달하고자 하는 것이 커맨드 객체일 경우 다음과 같이 사용한다. public List getListPagin..
스프링 <form> 태그 사용법 HTML을 이용하여 뷰를 만들수도 있지만 에러 메세지 출력을 편하게 하기 위해서는 태그를 사용하는 편이 좋다. 1. jsp 파일 상단에 라이브러리 추가 2. jsp 파일 작성 * 주의할 점 태그에서 commandName은 Controller에서 뷰로 쏴주는 이름을 그대로 넣어야한다. 자유게시판 - 글쓰기 게시판 선택 제목 작성자 내용 비밀번호 3. Controller GET 요청에서 추가 작업 필요 model.addAttribute("board", new BoardVO()); 태그에서는 커맨드 객체를 요구하므로 GET 요청 단계에서 VO를 만들어서 model로 넘겨줘야한다. // INSERT @RequestMapping(value="/write") public String insertFreePost(Mo..
mybatis 환경설정 : <typeAliases> mybatis를 사용할 때 여러 가지 환경 설정을 할 수 있다. 파일은 src/main/resources 아래에만 위치하면 되지만, mybatis 설정 파일이 있는 위치를 서버가 읽어야하기 때문에 아래와 같이 root-context.xml에 셋팅해줘야한다. configLocation : mybatis 설정 파일 경로 mapperLocations : sql 구문이 담긴 mapper 설정 파일 경로 다음은 설정 파일의 양식이다. cacheEnabled 캐싱을 방지하고 싶으면 false로 설정 useGeneratedKeys mapUnderscoreToCamelCase 자바 이름 규칙은 camel을 사용. 하지만 _를 사용하는 경우 매핑 문제를 해결하기 위한 설정 xml 파일 안에서 패키지 경로를 사용할 때 설..
스프링 유효성 검증 : @Valid 어노테이션 자바에서는 Validator 인터페이스를 통해 유효성 검증을 제공한다. 스프링에서는 @Valid 어노테이션으로 조금 더 편하게 검증할 수 있는 방법을 제공하는데 이에 대해 알아보자. 1. pom.xml에 유효성 검증 기능을 구현한 라이브러리 추가 아래의 예제는 hibernate를 사용 org.hibernate hibernate-validator 5.1.3.Final javax.validation validation-api 1.0.0.GA 2. BoardVO 커맨드 객체에 원하는 어노테이션 추가 어노테이션은 String 타입에서만 적용 가능하다. + 유효성 체크가 필요한 변수들은 나중에 꼭 String으로 지정하자. package com.spring.board.domain; import java.sql.T..
쿠키 @CookieValue 쿠키는 장바구니, 아이디 저장과 같은 상태 정보를 유지하기 위한 기술이다. 대신 보안성이 낮기 때문에 중요한 정보를 넣는 것은 좋지 않다. 하나에 4KB 이하로 제한되어 있으며 총 300개까지 정보 저장 가능하며 최대 저장 가능 쿠키 용량은 1.2MB이다. 서버에서 쿠키를 만든다. 만든 쿠키를 응답 헤더에 보낸다. 웹 브라우저는 읽은 쿠키를 저장한다. 동일한 요청을 할 때 받은 쿠키를 서버에 보낸다. 서버는 쿠키를 보고 클라이언트가 계속 접속 상태임을 확인한다. @CookieValue 메서드 종류 String getName() : 쿠키의 이름 리턴 String getValue() : 쿠키의 값 리턴 String getPath() : 쿠키의 적용 경로 리턴 int getMaxAge() : 쿠키의 유효기간 ..