전체 글 100

DBeaver를 활용하여 Oracle 데이터베이스를 PostgreSQL로 마이그레이션하기

기존에 Oracle SQL Developer를 사용하여 로컬에서 작업하던 프로젝트를 배포하기 위해 NEON에 올려보기로 했다.* NEON : 서버리스 Postgre 플랫폼 (참고 링크 : https://neon.tech/docs/introduction) NEON에 올리려면 PostgreSQL을 사용해야 하기 때문에 DBeaver를 활용해서 데이터베이스를 마이그레이션하였다.마이그레이션을 하려면 먼저 NEON에 가입하고 프로젝트를 생성해놓아야한다.1️⃣ DBeaver 설치 및 기본 설정공식 사이트: https://dbeaver.ioDBeaver CE (무료 버전) 설치PostgreSQL과 Oracle JDBC 드라이버는 자동 설치됨2️⃣ Oracle DB 연결 설정DBeaver → Database → New..

카테고리 없음 2025.05.09

Windows에서 Node.js 설치하기

○ Node.js 공식 사이트 : https://nodejs.org/ko/download Node.js — Node.js® 다운로드Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.nodejs.orgNode.js를 다운로드 받을 수 있는 공식 사이트다.사이트에 들어가 보면 Windows 환경에서 fnm 방식으로 npm을 사용해서 설치하는 경우아래와 같은 방법을 알려준다.# PowerShell# fnm 다운로드 및 설치:winget install Schniz.fnm# Node.js 다운로드 및 설치:fnm install 22# Node.js 버전 확인:node -v # "v22.15.0"가 출력되어야 합니다.# npm 버전 확인..

카테고리 없음 2025.05.05

Redis 공부

1. Redis란? : 데이터 처리 속도가 엄청 빠른 NoSQL 데이터베이스이다.  * NoSQL 데이터베이스: 키-밸류 구조로 데이터를 저장하는 데이터베이스 2. Redis의 장점 : 인메모리(in-Memory)에 모든 데이터를 저장한다. 그래서 데이터의 처리 성능이 굉장히 빠르다.  * 디스크가 아닌 메모리에 데이터를 저장하기 때문에 빠른것임 3. Redis 주요 사용 사례 : 캐싱(Caching), 세션 관리, 실시간 분석 및 통계, 메시지큐 등  * 대용량 트래픽 처리에 유용함 4. Redis 기본 명령어(CLI)기능명령어참고데이터(Key, Value) 저장하기set [키값] ["밸류값"]밸류값에 띄어쓰기가 없는 경우 큰따옴표 생략 가능.데이터 조회하기get [키값]데이터가 존재하지 않으면 (ni..

카테고리 없음 2025.03.17

250310 Spring Boot 14 - Querydsl, Gradle Tasks

1. Querydsl 사용 전 세팅1) Spring Starter 프로젝트의 build.gradle 파일 수정* 쿼리 DSL은 Spring Boot의 Add Starter로 추가할 수 없다. 직접 추가해줘야한다.* ext : external variable ==> build.gradle 파일 전체에서 사용할 수 있는 전역변수를 사용하는 곳이라고 생각하면 됨. 2) Maven Central( maven.org )에서 querydsl-jpa 검색 3) build.gradle 파일 수정* testCompileOnly : 테스트할 때도 컴파일할 때 사용하겠다는 뜻* 그 전에는 이클립스에서 컴파일을 해줬는데, gradle task를 할 때는 build.gradle에 있는 의존성들만 사용하기 때문에 단위테스트할 때..

Spring Boot 2025.03.10

[Trouble Shooting] ORA-12505: 데이터베이스에 접속할 수 없습니다. SID xe이(가) host port 1521의 리스너에 등록되지 않았습니다.

SQL Develpoer로 데이터베이스에 접속하려고 하는데 에러가 발생했다. [에러메시지]상태: 실패 -테스트 실패: ORA-12505: 데이터베이스에 접속할 수 없습니다. SID xe이(가) host *** port 1521의 리스너에 등록되지 않았습니다.https://docs.oracle.com/error-help/db/ora-12505/ ORA-12505 - Database Error MessagesThe listener received a request to establish a connection to a database or other service. The connect descriptor received by the listener specified a SID for an instance ..

SQL 2025.03.09

250307 Spring Boot 13 - UserDetails 객체, UserDetailsService 객체, 블로그 만들기(8)

1. UserDetails 인터페이스를 구현하는 엔터티 클래스 생성1) domain 패키지 하위의 Member 클래스 파일 수정(1) 클래스 선언 부분에 UserDetails 인터페이스 구현 추가 (2) UserDetails 인터페이스의 추상 메서드 구현   2. UserDetailsService 인터페이스 구현하는 서비스 클래스 생성1) config 패키지 하위의 SecurityConfig 클래스 파일 수정 2) service 패키지 하위에 MemberService 클래스 파일 생성* 스프링 시큐리티에서는 필터들이 UserDetails 인터페이스와 UserDetailsService 인터페이스가 구현되어 있다고 간주하고 메서드를 사용한다.* 구현한 객체를 어떻게 찾느냐? 스프링 컨테이너에 등록되어있는 컴..

Spring Boot 2025.03.07

250306 Spring Boot 12 - Spring Security 페이지 접근 권한/인증 구성 방법, Thymeleaf의 인증 유틸리티 활용, @EntityGraph, 블로그 만들기(7)

1. Spring Security - 페이지 접근 권한, 인증을 구성하는 방법1) HttpSecurity.authorizeHttpRequests(Customizer customizer) 메서드에서 설정.  - Customizer 람다 표현식을 작성.   - 장점: 한 곳에서 모든 설정을 구성할 수 있음.   - 단점: 새로운 요청 경로가 생길 때마다 설정 구성 코드를 수정해야 됨. 2) 컨트롤러 메서드에서 애너테이션으로 설정.   (1) SecurityConfig 클래스(빈)는 @EnableMethodSecurity 애너테이션을 설정.   (2) 각각의 컨트롤러 메서드에서 @PreAuthorize 또는 @PostAuthorize 애너테이션을 설정.   - 장점: 새로운 요청 경로가 생겨도(컨트롤러가 추가..

Spring Boot 2025.03.06

250305 Spring Boot 11 - 프로젝트에 의존성 추가, Spring Security 초기 설정, 블로그 만들기(6)

1. 프로젝트에 의존성 추가하기1) 프로젝트 우클릭 후 Spring - Add Starters 클릭  2) 기존에 사용했던 의존성들 모두 체크 + 새로 추가할 의존성 체크 ==> next 클릭 * OAuth2 Client : 소셜 로그인(구글, 카카오, 네이버 로그인 등) 구현에 필요한 라이브러리 3) 기존 내용에서 변경되는 내용을 확인하는 화면  - 줄이 그어져 있는 부분을 클릭하면 [>] 표시가 나온다.  - [>] 표시를 클릭하면 변경된 내용을 현재 파일에 반영할 수 있다.  - 수정을 완료했으면 Finish 버튼을 클릭. 4) 변경이 완료되고 프로젝트의 build.gradle 파일을 열어보면 의존성 설정이 업데이트 된 것을 확인할 수 있다.   2. Spring Security1) Spring S..

Spring Boot 2025.03.05

250228 Spring Boot 10 - 블로그 만들기(5)

1. 포스트에 달린 댓글들 가져오기1) comments.js 파일에 코드 추가 * axios에 콜백을 등록해주면 axios가 가지고 있다가 응답이 오면 콜백을 실행시켜준다. ※ async / await : 비동기 방식을 사용하는 코드를 동기 방식을 사용하는 것처럼 작성할 수 있도록 해준다.- 콜백의 코드들을 콜백이 아닌 것 처럼 작성할 수 있는 방법.- 비동기통신을 사용하는 함수를 호출할 때 앞에 await를 붙인다.- await를 붙인 함수가 들어있는 함수는 앞에 async를 붙인다.   2. 가져온 댓글들을 화면에 출력하기    3. 새로운 댓글 등록 기능 구현   4. 댓글 삭제/수정 버튼 기능 구현1) comments.js 파일에 있는 makeCommentElements() 함수 수정* data-..

Spring Boot 2025.02.28

250227 Spring Boot 09 - 블로그 만들기(4), PagedModel, fetch - LAZY 사용 시 주의점

1. 포스트 상세보기 페이지에 댓글 기능 추가하기 - 백엔드1) service 패키지 하위에 CommentService.java 파일 생성 2) web 패키지 하위에 CommentController.java 파일 생성 3) dto 패키지 하위에 CommentRegisterDto.java 파일 생성 4) Comment 클래스 파일에 코드 추가 5) CommentService 파일에 코드 추가 * 단위 테스트(1) src/test/java 하위에 service 패키지 생성(2) service 패키지 하위에 CommentServiceTest.java 파일 생성 6) CommentService 파일에 코드 추가 * 단위 테스트- CommentServiceTest 파일에 코드 추가 7) 더미 데이터 생성(1) C..

Spring Boot 2025.02.27