WebFlux - MongoDB 채팅서버
프로젝트 목적 Webflux 이해 비동기 통신의 원리 Mongodb 사용 ##
HTTP 관련 기록
HTTP 관련 문제가 발생했던 상황, 해결법을 기록합니다. 301 vs 302 페이지를 이동하는 경우, 301 혹은 302 라는 코드를 접하게 됩니다. 영구적인 이동인 경우 301 일시적 이동은 302 SEO 검색 엔진에서의 차이점 301: 검색 엔진이 이전 페이지에 대한 데이터를 제거하고 새로운 URL 정...
Equals and HashCode
Java 에서 비교 연산자 == 은 객체의 주소값을 비교한다. .equals 도 주소값을 비교한다. 다만, Type 이 String 인 경우 객체의 주소가 아니라 객체의 값을 비교한다. 따라서 문자열 비교 시에는 .equals 메서드를 사용해야 한다. DB 에 저장된 값은 DB 자체가 무결성을 보장하기 때문에 SQL 에서는 데이터A, 데이터B 자...
스프링부트 환경변수
환경변수를 읽는 법 Environment @Value @ConfigurationProperties Environment Environment 객체 활용 // 스프링부트에 기본적으로 여러가지 TypeConverter 가 등록되어 있다. // Property Converions 검색 Environment.getProperty(ke...
프로그래머스 기초 예제
프로그래머스에 기초를 다지면서 풀 수 있는 시리즈가 생겨 조금씩 풀어봐야겠다. 문자열 잘라서 정렬하기 ‘x’ 기준으로 문자열을 자른다. 1트) StringTokenizer 사용 2트) .split() 메서드 결과가 배열이라는 걸 기억해냄 사전순으로 정렬 오름차순으로 정렬하...
자바스크립트 고수가 되어보자
호이스팅 출처는 이곳 js 엔진은 실행 컨텍스트에 실행이 가능한 코드를 구분하기 위한 과정을 거친다. 이러한 과정 중, let, const, function 등의 선언을 스코프에 등록한다. 동작을 제외한 선언이 코드의 실행보다 먼저 메모리에 적재된다고 이해하자. 함수를 호출해서 사용하는 경우, undefined 이라는 값을 자주 보게...
H2 데이터베이스 연결
환경 m1 macos Sonoma 14.1.1 목표 도커 컨테이너로 H2 데이터 베이스 실행 스프링부트 프로젝트와 연결 # 도커 run 명령어로 이미지 다운로드 docker run -d -p 1521:1521 -p 81:81 \ -v /Users/jeongjin/Documents/h2:/o...
타입스트립트 연습
OAuth2.0 소셜 로그인 적용 연습
목적 스프링 시큐리티와 OAuth2.0 를 적용한다. 기존 프로젝트 활용 소셜 로그인(Google, Kakao, Naver) 를 구현한다. 간단한 프론트엔드를 구현한다. 전제 스프링 시큐리티에 관한 내용을 알고 있다. React.js 에 대해서 알고 있다. OAuth2.0 를 왜 사...