본문 바로가기

SpringBoot

(19)
83일차 - Stomp를 이용한 채팅 기능 구현하기 의존성 추가하기 - build.gradle dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-websocket' implementation 'org.webjars:sockjs-client:1.5.1' implementation 'org.webjars:stomp-websocket:2.3.4' } Config 파일 수정 @Configuration @EnableWebSocketMessageBroker public class StompWebSocketConfig implements WebSocketMessageBrokerConfigurer { @Override public void registerStompEndpoint..
82일차 - 웹소켓을 이용한 기본적인 채팅 기능 구현하기 Websocket 의존성 추가하기 - build.gradle dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-websocket' } Handler @Slf4j @Component public class WebSockChatHandler extends TextWebSocketHandler { @Override protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { String payload = message.getPayload(); log.info("payload {}", payload); T..
81일차 - 프로젝트 진행 시 참고사항 * 프로젝트 진행 시 참고사항 - xampp 오류 발생했을 때 : Explorer 클릭 > mysql > backup 폴더의 내용을 data 폴더로 붙여넣기(data 기존 내용은 삭제) - EXPLAIN ~ : 실행계획을 보여준다. EXPLAIN SELECT * FROM TABLE - UPSERT : INSERT + UPDATE => 일단 생성 시도, 데이터가 존재하지 않으면 생성, 존재하면 업데이트
57일차 - 코테, 스프링부트 프로젝트 참고 사항 https://school.programmers.co.kr/learn/courses/30/lessons/64065?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 https://yurison.tistory.com/357 [프로그래머스/자바] 튜플 ❌ 실패 코드(런타임 에러) ❌ String을 계속해서 수정하는 코드라 그런지 런타임 에러가 났다. import java.util.Arrays; import java.util.Comparator; class Solution { public int[] solution(String ..
53일차 - 국제화 국제화(Internationalization) File > Settings > Editor - File Encodings > Project Encoding : UTF-8로 변경 resources > messages.properties(디폴트 파일) 생성 후 내용 입력 hello=Hello There. messages_ko.properties hello=안녕하세요. html 파일에서 아래와 같이 사용 가능 * 요청 헤더 중 Accept-Language 가 en, ko 순일 때(== 크롬 기본 언어가 영어일 때) messages_en.properties가 존재하지 않아서 ko 파일을 읽게 된다. 이 때 messages_en.properties를 생성하고 빈 내용으로 저장해두면 디폴트 파일(messages.p..
[Spring] Validation(2) - Custom Validation Custom Validation의 두 가지 방법 1. AssertTrue / False 어노테이션을 통해 특정 메서드를 커스텀 검증 로직으로 적용 2. 커스텀 어노테이션 생성 및 ConstraintValidator를 적용하여 재사용 가능한 커스텀 검증 로직 적용 1) @AssertTrue 어노테이션을 이용한 검증 @Getter public class member { ... private String joinDate; @AssertTrue // 값이 true일 때 검증 성공 public boolean isValidDate() { if( ... ) { // joinDate의 값이 유효하지 않은 입력값일 때 return false; } return true; } } 클래스 내에 검증 로직을 적용한 메서드를 생..
[Spring] Validation(1) - Annotation Validation - Error나 Exception을 방지하기 위해서 미리 검증하는 과정 - 개발자가 주로 챙겨야 하는 검증은 크게 두 종류로 나뉜다. => 데이터 검증, 비즈니스 검증 데이터 검증 - 필수 데이터의 존재 유무 - 문자열의 길이나 숫자형 데이터의 경우 값의 범위 - email 등 특정 형식에 맞춘 데이터 비즈니스 검증 - 서비스의 정책에 따라 데이터를 확인하여 검증 - 경우에 따라 외부 API를 호출하거나 DB의 데이터까지 조회하여 검증하는 경우도 있다. 비즈니스 로직에 검증 코드 삽입 시 주의사항 1. 여러 가지 상황에 대해 검증 시 코드의 길이가 길어질 수 있다. 2. 핵심 로직과의 분리가 필요하다. 3. 검증 로직이 흩어져 있는 경우 혼란을 초래하고 재사용하기 어렵다. 스프링이 제..
30일차 - VirtualBox와 CentOS VirtualBox에서 CentOS 설치하기 CentOS 설치 시 소프트웨어 선택 > Minimal Install ROOT 비밀번호 설정 > root가 비밀번호로 SSH 로그인하도록 허용 체크 설치 직후 스냅샷 찍기 root로 접속 후에 명령어 입력 1. ip addr : 현재 랜카드(IP) 목록 확인 2. ifup enp0s8 : enp0s8이라는 랜카드 활성화 3-1. ssh root@{ip주소} : root 계정으로 해당 PC에 SSH 접속 3-2. Are you sure you want to continue connecting ? ... yes 입력 3-3. root@ ~ password : 패스워드 입력 application.yml 분리하기 application.yml파일에 카카오, 구글 클라이..