⭐ SpringBoot (73) 썸네일형 리스트형 SpringBoot TCP, HTTP 테스트 # spring boot 간단하게 hello word 띄우기 1. start.spring.io/ 접속 2. 디펜던시 에서 Spring Web 추가 3. Generate 클릭 후 프로젝트 생성 후 압축해제 4. 인텔리j로 프로젝트 오픈 5. 아레 코드 입력 후 실행 package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annot.. TCP Socket Programming (JAVA) Threeway HandShake # TCP 소켓 프로그래밍 Threeway HandShake 1. Client - Server 구조 란? client : 사용자 server : 파일서버, DB서버, EC2 인스턴스, 등등 보통 서버는 리소스를 전달해주는 역할만을 담당 한다. 클라이언트는 보통 리소스를 사용하는 역할이다. 2. Threeway & Four way HandShake 란? 소켓 통신의 기본 개념이라고 볼수 있고 서버 클라이언트 구조에서의 통신 과정? 구조?를 나타낸다. 다른 방식으로는 Four way handshake도 존재한다. - Threeway HandShake 구조 - Four way handshake 구조 3. JAVA 예제를 활용한 Server Client 구조 구현 자바 17 application.properti.. 웹 브라우저에서 header값과 cookie값 확인하기 # 웹 브라우저에서 Header값과 Cookie값 확인하기 1. 웹 브라우저에서 원하는 페이지를 연다. 브라우저의 개발자 도구(DevTools)를 열고 'Network' 탭을 선택한다. 페이지를 새로고침하여 네트워크 요청 목록을 갱신한다. 원하는 요청 항목을 선택하면, 오른쪽 패널에서 HTTP Header 정보를 확인할 수다. 2. 직접 구현하기 - Springboot로 예제 프로그램을 만들어서 구현 해보고 직접 header값과 cookie값을 확인해보자. Http header, cookie, Frontend와 Backend Request, Response # Frontend와 Backend에서의 Request와 Response 정리 간단 정리 http header : Client와 Server가 Request, Response 요청에 부가정보를 전송 http cookie : 동일한 서버에 재 요청 시 저장된 데이터를 함께 전송, 동일한 브라우저에서 요청 했는지 판단Frontend와 Backend의 Request&Response : 프론트엔드에서 백엔드로의 요청을 Request라고 하고 백엔드에서 프론트엔드로의 응답을 Response 라고 한다. Frontend는 우리가 생각하는 정적 데이터들의 모음 즉 클라이언트는 index.html을 호출하고 해당 내용을 브라우저에서 확인 가능하다. 그리고 해당 index.html을 호출 하는 과정에서 header나 c.. Springboot "helloword" 띄우기 with docker, pod # spring boot 간단하게 hello word 띄우기 1. start.spring.io/ 접속 2. 디펜던시 에서 Spring Web 추가 3. Generate 클릭 후 프로젝트 생성 후 압축해제 4. 인텔리j로 프로젝트 오픈 5. 아레 코드 입력 후 실행 package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annot.. @Transactional # @Transactional 클래스, 메소드에 @Transactional이 선언되면 해당 클래스에 트랜잭션이 적용된 프록시 객체 생성가 생성된다. 프록시 객체는 @Transactional이 포함된 메서드가 호출될 경우, 트랜잭션을 시작하고 Commit or Rollback을 수행을 수행한다. CheckedException or 예외가 없을 때는 Commit을 수행 UncheckedException이 발생하면 Rollback을 수행 - 우선순위는 아래와 같다. 클래스 메소드 > 클래스 > 인터페이스 메소드 > 인터페이스 - 예제 어노테이션 @Transactional(readOnly = true) - Exception @Transactional(rollbackFor = Exception.class) - 끝 - 수동으로 빌드하기 with shellscript # 수동으로 빌드하기 - 수동 빌드를 하는 이유. 개발환경을 세팅하다보면 CI/CD를 구현하는 것보다 손이 좀 가지만 수동으로 빌드를 하는 경우 공수가 덜 드는 경우가 있다. (개발 환경 세팅이 아직 안된 상태에서 짧은 기간 확인을 위한 빌드 절차? 정도 생각하면 될 듯하다.) 빌드 프로세스는 아래와 같다. - 보통은 CI/CD를 통해 레포지토리에 업로드 후 빌드를 수행하여 확인을 하지만, 수동으로 하는 경우는 위와 같이 개발자가 IDE에서 직접 Commit / Push를 수행하고 EC2에서 git clone을 하여 수동으로 빌드를 수행한다. 1. IDE와 Git Repository 연동 - InteliJ를 예를들어 설명하자면, 아래와 같이 Git 메뉴에서 Manage Remotes 를 클릭한다. - R.. SpringBoot에 스케줄 적용하기 # SpringBoot에 스케줄을 적용해서 정기적으로 데이터를 CRUD 해보자.- 일단 스프링은 기능이 참 많은거 같다... 어노테이션... 시작해보자.1. 일단 main 클래스에 스케줄 어노테이션을 붙이자.- 복수의 클래스에 아래의 어노테이션이 있어도 무관하더라.@EnableScheduling @EnableBatchProcessing // 배치 기능 활성화2. Schedule 컨트롤러를 만들자.@Slf4j @RestController public class ScheduleController { @Autowired private ScheduleMapper scheduleMapper; @Scheduled(cron = "* * * * * *", zone = "Asia/Seoul") @PostMapping(".. 이전 1 2 3 4 5 ··· 10 다음