분류 전체보기

· jsp
페이징,검색 개요 페이징,검색은 List만 신경쓰면됩니다. 우리가 만든 List페이지에서는 DB에 있는 데이터가 한 페이지에 전부 나온다. 하지만 몇 천번째 글을 읽기 위해 스크롤을 내리는것은 비효율적이고, UI도 깔끔해 보이지않는다. 또 원하는 글을 찾기도 힘들다. 네트워크 사용량도 많아진다. 그에 비해 다음 정부24 페이지를 보자. 화면에 딱 10개씩(페이징)만 나오고 검색기능 까지 있어서 내가 원하는 글을 찾기도 용이하다. 우리도 freeList.jsp와 memberList.jsp에 페이징,검색기능을 적용해 볼 것이다. 페이징 페이징VO public class PagingVO { //입력받는 데이터 private int curPage=1; // 현재 페이지 번호 private int rowSizeP..
· jsp
코드사용시 장점 1.같은 데이터를 다르게 인식하는 경우 개발자가 '스프링 입문을 위한 자바 객체지향의 원리와 이해'를 DB에 넣을려고한다. 근데 책에 굵은 글씨로 표시된 '자바 객체지향의 원리와 이해'로 저장할 때도 있고, 풀네임인 '스프링 입문을 위한 자바 객체지향의 원리와 이해''로 저장할 때도 있다. 이 때 DB는 각각 모두 다른 데이터로 인식하게 된다. -> 코드를 사용할 경우 서로 다른 데이터가 들어갈 일이 없다. 해당책에 대한 코드가 BOOK1이라면 BOOK1만 DB에 들어갈 수 있다. BOOK1에 해당하는 책은 한개밖에 없어 헷갈릴 일이 없다. 2. 다른 데이터이지만 똑같이 인식하는 경우 '스프링 입문을 위한 자바 객체지향의 원리와 이해'가 잘팔려서 개정판이 나왔다고 해보자. 구판과 개정판은..
개발을 하던 도중 다음과 같은 에러를 만났다. response.sendRedirect(""); response.addCookie(cookie); //쿠키가 전달되지 않음 response.addCookie(cookie); response.sendRedirect(""); //쿠키가 제대로 전달됨 sendRedirect와 addCookie 순서에 따라 쿠키가 저장에 영향을 주는지 원인을 찾아보았다. addCookie()의 메소드는 사실 단순히 Header를 변경해주는 것과 같다. @Override public void addCookie(final Cookie cookie) { // Ignore any call from an included servlet if (included || isCommitted()) ..
· 자바
커넥션풀을 사용한다면 첫 요청시에만 직접적인 연결을 하고 그 다음부터는 커넥션풀에 저장되어 있는 커넥션을 사용한다. 그렇다면 직접적인 연결을 할 때 어떤 코드가 실행되길래 시간이 오래걸리고 커넥션풀을 사용하면 금방되는지 알아보자. Connection connection= DriverManager.getConnection("myurl"); Connection connection= DriverManager.getConnection("myurl","myid","mypass"); @CallerSensitive public static Connection getConnection(String url, String user, String password) throws SQLException { java.util.P..
· 배포
https://brilliantdevelop.tistory.com/171에 이어 Travis CI, S3, CodeDeploy를 연동해 실제 배포와 배포자동화까지 하도록 하겠습니다. Travis CI, S3, CodeDeploy 연동 먼저 S3에서 넘겨줄 zip 파일을 저장할 디렉토리를 하나 생성하겠습니다. EC2서버에 접속해서 다음과 같이 디렉토리를 생성합니다. mkdir ~/app mkdir ~/app/ch && mkdir ~/app/ch/zip Travis CI의 Build가 끝나면 S3에 zip파일이 전송되고, 이 zip파일은 /home/ec2-user/app/ch/zip으로 복사되어 압축을 풀 예정입니다. AWS CodeDeploy의 설정은 appspec.yml로 진행합니다. appespec.y..
· 배포
https://brilliantdevelop.tistory.com/170에 이어 Travis CI, S3에 CodeDeploy까지 연동하는걸 목표로, Travis CI, S3, CodeDeploy가 서로 연동 될 수 있도록 설정을 하겠습니다. EC2에 IAM 역할 추가하기 EC2가 CodeDeploy를 연동 받을 수 있게 IAM역할을 추가합니다. 이전 글에서 만든 IAM의 사용자와 지금부터 만들IAM의 역할은 다음과 같은 차이가 있다. 사용자 AWS 서비스 외에 사용할 수 있는 권한 로컬PC,IDC 서버 등 역할 AWS 서비스에서만 할당할 수 있는 권한 EC2, CodeDeploy,SQS 등 지금 만들 권한은 EC2에서 사용할 것이기 때문에 역할로 처리합니다. 검색창에 IAM 검색 - 역할 - 역할만들기..
· 배포
본격적인 배포 전 준비 배포된 프로젝트에서 사용할 DB는 앞글에서 설정한 RDS이다. 이는 mariaDB이기 때문에 build.gradle에 추가해주자. implementation 'org.mariadb.jdbc:mariadb-java-client' 운영용 applcation-real.properties 구성하기 spring.profiles.include=oauth,real-db spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect spring.session.store-type=jdbc 그리고 EC2에서 배포할 springboot 프로젝트의 포트 8080 인바운드도 확인해주자. 아마 되어있을 것이다. 만약 안 되..
· 배포
RDS 생성 먼저 AWS 검색창에 RDS를 검색해줍니다. 왼쪽 탭에 '데이터베이스'를 선택 후 오른쪽에서 데이터베이스버튼을 누릅니다. 원하는 DB를 선택합니다. 자기가 선호하는 DB를 선택하면 되지만 여기서는 mariaDB를 선택하겠습니다 . mardiaDB의 버전과 템플릿을 선택합니다. 버전은 특별히 원하는 버전이 있으면 해당버전을 선택하고 그렇지 않은 경우는 기본 버전을 사용합니다. 템플릿은 역시 프리티어! 설정은 다음과 같이 설정한다. 여기서 설정한 것이 나중에 DB에서 연결할 때의 username과 password가 된다. (workbench에서 접속할 때의 예시) 이후 데이터베이스 생성버튼을 눌러 DB를 생성해줍니다. RDS 파라미터 설정하기 RDS에서 설정해야할 파라미터는 다음과 같습니다. 타..
· 배포
https://www.yes24.com/Product/Goods/83849117 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 예스24 가장 빠르고 쉽게 웹 서비스의 모든 과정을 경험한다. 경험이 실력이 되는 순간!이 책은 제목 그대로 스프링 부트와 AWS로 웹 서비스를 구현한다. JPA와 JUnit 테스트, 그레이들, 머스테치, 스프링 www.yes24.com 이 책의 내용을 따라한 후 정리한 내용입니다. 배포과정에만 집중하기 위해 네이버 로그인 등 OAUTH와 무중단배포의 내용은 제외합니다. 배포 과정 구성 0. 개발자가 변경사항을 깃허브에 커밋 1. Travis CI가 빌드(jar파일 생성) - 생성된 jar파일을 S3가 저장 2. Travis CI가 Code Deploy에게 배포 요청 3. ..
WebSocket 기존의 단방향 HTTP 프로토콜과 호환되어 양방향 통신을 제공하기 위해 개발된 프로토콜. 일반 Socket통신과 달리 HTTP 80 Port를 사용하므로 방화벽에 제약이 없으며 통상 WebSocket으로 불린다. 접속까지는 HTTP 프로토콜을 이용하고, 그 이후 통신은 자체적인 WebSocket 프로토콜로 통신하게 된다. HTTP와 달리 한번연결 후 데이터를 송수신하기 때문에 실시간채팅이나 스트리밍서비스에 사용된다. Spring에서 websocket 서버 구현하기 build.gradle //starter implementation 'org.springframework.boot:spring-boot-starter' implementation 'org.springframework.boot:..
한창희
'분류 전체보기' 카테고리의 글 목록 (2 Page)