study 52

[AWS RDS] RDS 생성 및 연결 ( +보안그룹 변경 )

프리티어로 진행, t2.micro 사용, 퍼블릭 액세스 가능으로 진행RDS 생성 후 파라미터 그룹 설정아래 블로그에 정말 자세하게 나와있어서 참고하여 생성하였다.https://velog.io/@shawnhansh/AWS-RDSmySql-%ED%94%84%EB%A6%AC%ED%8B%B0%EC%96%B4-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0 AWS RDS(mySql) 프리티어 생성하기AWS 프리티어 뽕 뽑으려면 DB까지,,,💫velog.io RDS 생성 후 보안 그룹 default 변경하기데이터베이스 생성 후 엔드포인트를 host에 입력하여 연결하려 했지만 Timeout 에러가 떴다.나같은 경우는 생성하고 난 뒤 보안그룹을 변경해주는 작업을 따로 진행해주었다. 보안그룹 탭으로 ..

study 2024.09.03

[Docker] MySQL설치 및 intellij에서 접속하기

docker 설치 ( 난 M1 이기 때문에 Apple chip 사용 )https://www.docker.com/products/docker-desktop/ Download Docker Desktop | DockerDocker Desktop is available to download for free on Mac, Windows, or Linux operating systems. Get started with Docker today!www.docker.com 도커를 실행하면 위에 도커 아이콘이 뜨게 되는데 , 그러면 이제 터미널에서 버전을 확인해보자버전도 잘 뜨는 것을 확인할 수 있다. 이제 mysql server를 설치해보자참고 블로그https://poiemaweb.com/docker-mysql  Doc..

study 2024.09.03

WebSocket

Websocket- 주로 채팅- 연결 종료시 까지 양방향 통신- 클라이언트와 서버간의 TCP 연결을 길게 유지하고, 서로 양방향으로 데이터를 전달하게 해주는 통신 규약의 일종- 연결이 끊어졌을 때 다시 붙이는 작업이 필요함 sse- 주로 알람- upgrade 하자 (웹소켓) 라고 하는 요청을 handshake 요청이라고 한다.  Spring TextWebSocketHandler 상속받아서 사용- 데이터형태는 byte 형태 @Slf4j@Componentpublic class SimpleChatHandler extends TextWebSocketHandler { // 현재 연결되어 있는 클라이언트를 관리하기 위한 리스트 private final List sessions = new ArrayList..

study 2024.09.03

(230627) AOP

관점 지향 프로그램 ( Aspect Oriented Programming )여러 비즈니스 로직에 동일하게 작동되는 기능을 만들어 본다면?- 메소드 실행의 걸린 시간- 메소드의 반환값 등서로 다른 비즈니스 로직이 공통적으로 가졌으면 하는 기능 → 횡단 관심   spring-boot-starter-aop 의존성은 start.spring.io에서 찾을 수 없고 수동으로 추가하면 잘 작동한다build.gradle - dependencies - 의존성 추가// aop 추가implementation 'org.springframework.boot:spring-boot-starter-aop' Aspect : 횡단 관점을 모은 모듈로, 공유 기능들을 가졌으면 하는 관점Join Points : 합류 가능한 지점, 특정 적..

study 2024.09.03

(230626) Validation

유효성 검사 ( Validation ): 사용자가 입력한 데이터가 허용된 형태인지 검사하는 과정 spring-boot-starter-validationJakarta Bean Validation- 유효성 검증을 위한 기술 명세- 어떤 항목이 어떤 규칙을 지켜야 하는지를 표시하는 기준 Hibernate Validation- Jakarta Bean Validation를 토대로 실제로 검증해주는 프레임워크 @NotBlankimport jakarta.validation.constraints.NotBlank;import lombok.Data;@Datapublic class UserDto { private Long id; @NotBlank // 비어있지 않다. private String usernam..

study 2024.09.03

(230623) [Postman] MultipartFile

File기존에 static 안에 있던 폴더들을 postman에서 조회할 때 http://localhost:8080/~ 으로 설정해도 결과가 나왔지만위 사진과 같이 설정 시 url에 static을 붙여야 데이터 조회가 된다. http://localhost:8080/static/~ HTMl에서 JS없이 데이터를 보낼 때는? => form 사용- 내부에 input 요소를 이용해 전달할 데이터 정의- input type="submit"을 이용해 form 요소 내부의 데이터 수합- enctype 속성으로 데이터 인코딩 방식 정의 가능  multipart/form-data요청을 여러 부분으로 구분해서 전송하는 형태 ( JSON 혹은 multipart가 있다. )- 텍스트와 파일이 혼합된 요청이라는 의미- Form을..

study 2024.09.03

(230614) JPA

IoC ContainerSpring에는 Bean 객체로 등록하기 위한 annotation이 다양하게 존재한다.Ex) Controller, Component, Service, Repository ... 이러한 어노테이션들이 저장된 패키지 => org.springframework.stereotype이러한 어노테이션을 bean객체로 사용 시 ioc 관리 하에 사용되게 될 것이다. Stereotype구현된 기능상의 차이도 있지만 주된 목적은 역할의 표시이다.- 해당 클래스가 어떤 역할을 하는지 - 어노테이션 기반 관점 지향 프로그래밍- 실제 구현보다 역할적인 구분에 초점이 맞춰져 있다. @Component가장 기초가 되는 Annotation으로 @ComponentScan의 대상이다.- 직접적인 비즈니스 로직에서..

study 2024.09.03

(230613) Stack, DFS / MyBatis 설정

알고리즘 - Stack 후위표기법- 숫자 : push- 연산자 * : 첫번째 pop한 값은 연산자 기준으로 오른쪽, 두번째 pop한 값은 만나게 된 연산자 기준으로 왼쪽에 배치하여 계산 후 push3 * 1 = 3Stack : 35 + 3 = 8Stack : 8Stack : 8 > 4 > 9 4 - 9 = -5Stack : 9 > (-5)  괄호는 Stack 안에서 우선순위가 가장 낮음여는 괄호는 무조건 push (닫는 괄호가 나올 때까지)후위표기법에는 괄호가 없기 때문에 pop으로 닫힌 괄호까지 나오면 괄호는 없애버린다.  * > + > templatepublic class InfixToPostfix { public void solution() throws IOException { B..

study 2024.09.03

(230612) 알고리즘 - Stack / DB - IntelliJ로 SQLite 연결 / DML / DDL / Call Stack

자료구조란- 복수의 자료를 관리하고 저장하는데 효율적인 형태와 사용법- 컴퓨터 메모리에 자료가 어떻게 저장되는지 보다 자료를 어떻게 관리하는지를 중점적으로 연구 Stack 자료구조- 배열을 만들고 그 배열의 끝 부분을 가르키는 top이 있으면 스택이다. (X)- 가장 나중에 넣은 자료가 먼저 나오도록 만들어져 있으면 스택이다. (O) 물건을 쌓아올린 형태의 자료구조- 쌓여있는 종이컵을 생각해보자. 기본적으로 쌓은 컵들 전체를 옮기거나 뒤집지 않는 한 컵은 제일 위에만 더 쌓을 수 있다.- 꺼낼 때도 마찬가지로 위에서만 꺼낼 수 있다. - 마지막에 추가된 자료가 먼저 나오는 후입선출 구조- 자료가 일렬로 놓은 선형 자료구조선형구조비선형구조 (규칙적이지 않음) Stack 만들어보기Stack의 기본 기능- S..

study 2024.09.03

(230609) StudentDTO 생성 / MVC 패턴 예제 / 어노테이션

@RequestParam : 그곳에 보내는 '데이터' (택배같은 것)@PathVariable : url 상에 표현된 변수를 활용하기 위해 사용 (어디를 나타내는)  Update1. 상세보기 -> 업데이터 페이지2. 업데이트 페이지 -> form 만들기3. form을 통한 Controller 만들고, @PostMapping4. Service에서 갱신5. 상세보기 페이지로 돌아옴 (redirect to) update.html 파일 만들기Update Student Name : Email : Back Controller 에서 updateView() 생성@GetMapping("/{id}/update-view") public String u..

study 2024.09.03