웹 애플리케이션을 개발할 때 데이터는 보통 데이터베이스에 보관한다. 1. 주로 TCP.IP를 통해 커넥션을 연결한다.2. 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결한 커넥션을 통해 DB에 전달한다.3. DB는 전달된 SQL을 수행하고 그 결과를 응답한다. JDBC(Java Database Connectivity)는 자바에서 데이터 베이스에 접속할 수 있도록 하는 자바 API이다.자바가 표준 인터페이스를 정의했으니 개발자는 사용해서 개발하면 되는데, 사용할 DB에 맞는 드라이버도 필요하다. SQL 작성 후 SQL Mapper가 SQL 결과를 객체로 편리하게 매핑해준다.SQL Mapper로는 JdbcTemplate와 MyBatis가 있다. MyBatis가 Jdbc Template보다 더 많은 ..
스프링 mvc 2편 드디어 완강이다 야호✨ 파일 전송과 HTML Form 전송방식 각각 차이가 있다. 이것부터 이해해야한다. 요청 HTTP 메시지 헤더에 Content-Type application/x-www-form-urlencoded 추가된다. (가장 기본)폼에 입력한 항목은 HTTP 바디에 username=wow&age=100와 같이 &로 구분해서 전송된다. 파일을 전송할려면 파일은 문자가 아니라 바이너리 데이터로 전송해야 한다.그런데 파일을 전송할 때는 보통 폼인 문자 데이터도 함떼 전송하는 상황이 많다.이때 HTTP는 multipart/form-data 전송방식을 사용한다. 서블릿 파일 업로드 @GetMapping("/upload") public String newFile() { ..
스프링 웹프로젝트를 하다보면 문자를 숫자로 변환하거나, 반대로 숫자를 문자로 등 타입을 변화해야하는 경우가 많다.스프링 기능인 타입 컨버터가 이를 지원한다. HTTP 요청 파라미터는 모두 문자로 처리된다. 숫자가 필요한 경우 타입을 변환하는 과정을 거친다. @GetMapping("/hello-v1") public String helloV1(HttpServletRequest request) { //요청 파라미터는 모두 문자로 처리된다. String data = request.getParameter("data"); //자바에서 다른 타입으로 변환할 때 방법 Integer intValue = Integer.valueOf(data); Sy..
Redis 보다 ElastiCache 더 사용하는 이유사용하는 서버에 Redis를 직접 설치하고 셋팅, 관리 더 나아가 확장까지 할려면 신경쓸 부분이 많다.ElastiCache는 셋팅, 확장 쉽고 기본적으로 모니터링 기능도 제공한다. 그래서 더 많이 사용함 AWS에서 ElastiCache 셋팅해보겠다. 구성 > 자체 캐시 설계, 클러스터 캐시 선택 위치 > 다중 AZ 미선 캐시 설정 연결 설정 다음 단계로 넘어가면 고급설정이 나온다. 보안 그룹을 설정하기 위해 다른 창으로 만들러가보자 이제 EC2 서버 설정에서 6379 포트 허용을 해야한다.EC2 > 좌측 메뉴 > 네트워크 및 보안 > 보안 그룹 > 보안그룹 생성 ElastiCache로 돌아와 보안그룹에 방금 만든 보안을 선택한다.백업은 필요없으니 패..
시작하기에 앞서 지역을 서울로 설정할 것 EC2인스턴스 시작이름은 취향껏 ubuntu 사용 MuSQL, Redis 모두 사용하기 위해 t3.small 사용 테스트만 해보고 삭제할 것이라 키페어 없이 진행 네트워크 설정 > 편집스프링부트를 사용하기위해 8080 추가 그 후에 인스턴스 생성🖱️ RDS 연결 > 퍼블릭 액세스 설정외부에서 데이터베이스를 접근하기 위함이 생성하고 데이터베이스가 자동으로 생성되기 위함테스트용이라 자동 백업은 비활성화한다. RDE 생성!🖱️ RDS를 자세히보면 보안그룹이 있다.여기서 3306 포트로 모든 IP가 접근할 수 있도록 설정해야한다. 보안 그룹에 들어가 인바운드 규칙을 추가한다. EC2 연결아까 만들어둔 EC2 인스턴스로 돌아가 원격으로 접속한다. 레디스 설치$ s..
스프링 부트 프로젝트가 존재한다는 전제로 시작하겠음 연결된 MySQL에 더미데이터를 추가함 스프링부트의 application.properties의 확장자를 yml로 바꾼다.properties가 간단하지만 yml을 사용하면 계층으로 들여쓰기해서 구조 파악하기 수월하다.# local 환경spring: profiles: default: local datasource: url: jdbc:mysql://localhost:3306/mydb username: root password: password driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: update show-sql: true ..