BE

웹 소켓(Web Socket)이란?웹 소켓(Web Socket)은 클라이언트와 서버 간의 양방향 통신을 지원하는 프로토콜로, HTTP보다 효율적인 실시간 데이터 전송이 가능하다. HTTP는 요청과 응답을 기반으로 한 단방향 통신이지만, 웹 소켓은 연결을 유지하면서 양방향으로 데이터를 주고받을 수 있다. ✅ 웹 소켓의 특징양방향 통신 : 클라이언트와 서버가 실시간으로 데이터를 주고받을 수 있다.지속적인 연결 유지: 최초 handshake 후 지속적인 연결을 유지하면서 데이터 전송 가능낮은 오버헤드: HTTP 요청/응답보다 헤더 크기가 작아 네트워크 부하 감소빠른 응답 속도: 실시간 서비스(채팅, 알림 등) 등에 적합 웹 소켓으로 실시간 채팅 구현하기웹 소켓 라이브러리 추가 build.gradle 파일에 웹..
webimplementation 'org.springframework.boot:spring-boot-starter-web' DB// DBimplementation 'org.springframework.boot:spring-boot-starter-data-jpa'implementation 'org.mariadb.jdbc:mariadb-java-client'  spring securityimplementation 'org.springframework.boot:spring-boot-starter-security'  jwtimplementation 'io.jsonwebtoken:jjwt-api:0.11.5'implementation 'io.jsonwebtoken:jjwt-impl:0.11.5'implementa..
· BE
파이참 환경에 Locust 설치pip install locust   locustfile.py 파일 생성locustfile.py에 테스트하고 싶은 HTTP 요청 URL을 추가한다.from locust import HttpUser, task, betweenclass UserBehavior(HttpUser): wait_time = between(1, 5) # 1~5초 사이 대기 @task def index_page(self): self.client.get("/") # 메인 페이지 요청 @task def about_page(self): self.client.get("/about") # About 페이지 요청  locust 명령어 입력 후 테스트locust..
여러 개의 이미지를 한 번에 넘겨받아 저장해야 하는 경우 멀티파트(Multipart)로 처리해야 한다.  이미지 파일 업로드 기능 구현 상품에 대한 정보와 이미지들을 넘겨받아 DB에 저장하고, 로컬 경로로 이미지 파일을 업로드하는 예제  엔티티 생성Product 엔티티public class Product { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long idx; private String name; private int price; @OneToMany(mappedBy = "product") List productImageList = new ArrayList();}  ProductImage 엔..
스프링 부트에서 소셜 로그인을 구현하기 OAuth 라이브러리 추가 build.gradle에 추가implementation 'org.springframework.security:spring-security-oauth2-client' 카카오 로그인 설정https://developers.kakao.com/docs/latest/ko/kakaologin/common  Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com  ✅ Redirect URI 설정카카오 어플리케이션에서 Redirect URI 설정해준다.http://localhost:8080/login/oau..
스프링에서 유효성 검사는 javax.vaildation 패키지의 어노테이션을 활용해서 간편하게 적용할 수 있다. 회원가입, 게시글 작성 등에서 입력값이 올바른지 확인하는 과정에서 Validation을 통해 유효성 검사를 한다. Validation 적용 방법@Valid 사용@Valid 어노테이션을 이용해 컨트롤러에서 DTO의 유효성을 검사한다. DTO에 선언된 검증 조건을 자동으로 확인한다.만약 유효성 검사에 실패하면 자동으로 400 Bad Request 에러가 발생한다.@RestController@RequestMapping("/user")public class UserController { @PostMapping("/signup") public void signup(@Valid @Request..
개발 도구(IntelliJ)에서 환경변수 설정하기Edit Configuration에서 환경변수를 설정하는 방법이다.  디버그 옆 더보기 -> Edit 클릭   Modify options 클릭  Environment variables 클릭    Environment variables 옆에 Edit 버튼 클릭    + 버튼을 누르고 설정할 환경변수의 이름과 value를 설정해주면 된다 !   프로젝트에서 환경변수 사용하기 application.yml${환경변수 이름} 으로 사용하면 된다.spring: datasource: url: jdbc:mariadb://${DB_URL} driver-class-name: org.mariadb.jdbc.Driver username: ${DB_ID} ..
페이지네이션(Pagenation)이란?대량의 데이터를 일정한 크기(페이지)로 나누어 출력하는 방식이다.-> 이 방식은 성능 최적화와 사용자 경험 개선을 위해 필수적으로 사용된다.예를 들어, 데이터가 100개 있을 때 한 페이지당 10개씩 보여준다면 총 10페이지로 나누어 출력된다.Spring Data JPA에서 페이징 처리스프링 부트에서는 Spring Data JPA의 Page와 Pageable 인터페이스를 사용해서 간편하게 페이징을 구현할 수 있다.  DTO페이징한 데이터를 담을 DTO 클래스를 생성한다.Course를 페이징할 것이기 때문에 Course 응답 시 사용하는 CourseResponse를 List로 변수를 만든다. page : 현재 페이지 번호size : 한 페이지당 데이터 개수totalEl..
DataSource로 DB 이중화를 해볼 것이다.  DB를  Master, Slave 구조로 설계하여Master DB는 쓰기 (Innsert, Update, Delete) 작업을 수행하고, Slave DB는 읽기(Select) 작업을 수행해서 성능을 향상시키는 방법이다. build.gradle에 라이브러리 추가jpa를 추가해주고, mariadb를 사용할 것이기 때문에 mariadb client 라이브러리를 추가해준다.implementation 'org.springframework.boot:spring-boot-starter-data-jpa'implementation 'org.mariadb.jdbc:mariadb-java-client'  application.yml에 설정 추가application에 dat..
Swagger란? Swagger는 RESTful API를 설계, 문서화, 그리고 테스트할 수 있도록 도와주는 오픈 소스 프레임워크API의 설계 및 관리에 널리 사용된다. 공식 사이트 : https://swagger.io/ API Documentation & Design Tools for Teams | SwaggerSwagger and OpenAPI go hand‑in‑hand. Swagger offers powerful and easy to use tools to take full advantage of the OpenAPI Specification. See how we do itswagger.io Swagger API 사용하기build.gradle에 추가implementation 'org.springd..
셰욘
'BE' 카테고리의 글 목록 (2 Page)