전체 글 79

[마이그레이션] 첨부파일 정리

📌 참고사항사용DB : Oracle, Postgresql개발 환경 : Java, SpringBoot파일 서버 : NAS, S31. 계획1) NAS 서버에 있는 AS-IS 파일들 불러오기2) S3에 TO-BE 파일들 업로드하면서 TO-BE 파일 테이블에 데이터 INSERT 2. 서비스 개발1) 별도 마이그레이션 패키지 생성2) 업로드, 다운로드 서비스 개발3) 테스트 3. 서비스 프로세스 순서1) TO-BE 파일 목록을 마이그레이션한 DB에서 조회2) 해당 Key 값으로 AS-IS 데이터 조회및 파일 다운로드3) TO-BE 데이터 가공 및 PK 매핑 테이블 등록 4) TO-BE 데이터 등록및 파일 업로드/** * 데이터 마이그레이션 */@Transactionalpublic void setMigration..

코딩 2025.11.20

[SQL] 쿼리 튜닝 정리

📌 참고사항Postgresql 위주로 작성쿼리 튜닝을 하게된 이유마이그레이션 작업중 급격하게 늘어난 데이터로 인해 시스템 목록 조회할때 많은 시간이 소요되는 현상발견 원인1. 과도한 JOIN 으로 인한 원인2. WHERE 절에 LIKE문을 앞뒤로 % 붙여 사용으로 인한 원인3. 특정 조건절에서만 사용하는 불필요한 테이블 JOIN으로 인한 원인4. 과도한 집계함수 사용으로 인한 원인 해결1. WITH절 사용하여 인덱스 적용되는 실행 우선순위별로 쪼개서 해결≫ 원본SELECT *FROM A a JOIN B b ON a.id = b.id JOIN C c ON a.id = c.id ...WHERE a.id = 'A' ...LIMIT 10 OFFSET 0≫ 수정본WITH withA AS ( SELECT a.i..

SQL 2025.10.17

[SQL] Oracle Flashback Query 정리

📌 참고사항최소 Oracle 9i 버전 이상부터 사용가능MySQL / MariaDB은 innoDB에서만 사용가능한 비슷한 기능 있음SQL Server는 유사한 기능 있음1. 사용방법--2025년 10월 17일 09시 데이터 조회SELECT *FROM table_nameAS OF TIMESTAMP (TO_DATE('2025-10-17 09:00:00', 'YYYY-MM-DD HH24:MI:SS'))... 2. Flashback Table Oracle 10g 부터 사용 가능한 Flashback Table 기능이 있는데 Flashback Query는 특정 시점에서의 데이터 상태를 조회할 수 있는 기능이지만 Flashback Table 기능은 테이블 단위로 데이터를 이전 시점으로 복구하는 기능--2025년..

SQL 2025.10.14

[마이그레이션] 순서 및 구성 정리

📌 참고사항사용DB : Oracle, Postgresql개발 환경 : Java, SpringBoot1. 계획1) AS-IS 마이그레이션 메뉴, TO-BE 마이그레이션 메뉴 분석2) AS-IS 테이블, TO-BE 테이블 매핑정의서 작성3) 공통코드 대체 정의서 작성 2. 서비스 개발1) 별도 마이그레이션 패키지 생성2) 서비스 개발3) 테스트 3. 백업 및 이관1) 백업 테이블 생성2) 작업 테이블 생성3) 백업 및 작업 실행4) 이관후 정합성 체크5) 롤백-- 1. TO-BE 데이터 백업 (전체)DELETE FROM 백업 테이블;INSERT INTO 백업 테이블 SELECT * FROM TO_BE 테이블-- 2. TO-BE 데이터 이관INSERT INTO TO_BE 테이블 SELECT * FROM 작업..

코딩 2025.09.16

[기술면접] SSR과 CSR의 차이 정리

✅ SSR서버 사이드 렌더링으로 서버측에서 렌더링 하는 방식클라이언트가 서버에 컨텐츠를 요청하면 페이지 필요한 데이터를 바로 삽입하고 CSS까지 적용해 렌더링을 마친 HTML 로 응답모든 데이터가 다 HTML 에 담긴 채로 브라우저에 전달됨CSR에 비해 초기 구동속도가 빠름하지만 이후 페이지 일부 변경시 전체를 다시 요청해야함✅ CSR클라이언트 사이드 렌더링으로 클라이언트측에서 렌더링 하는 방식클라이언트가 서버에 컨텐츠를 요청하면 빈 뼈대만 있는 HTML 로 응답클라이언트는 연결된 JS를 다운로드 받아서 동적으로 페이지를 만들어 브라우저에 표시함동적으로 DOM 을 생성하는 시간을 기다려야하기 때문에 초기 구동속도가 느림하지만 이후 페이지 일부 변경시 그 부분만 요청하여 구동속도가 빠름📌 추가 정리SPA..

기술면접 2025.07.29

[Error] 로그인 연동 - 이슈 정리

🗂️ Caused by: org.hibernate.InstantiationException: No default constructor for entity1️⃣ 원인 생성자가 없어서 생긴 오류 2️⃣ 해결 생성자가 없어서 생긴 오류 3️⃣ 또다른 해결방법 @Builder 를 사용시 error: constructor UserEntity in class UserEntity cannot be applied to given types 오류 발생 파라미터 없는 기본 생성자만으로는 사용불가 -> @AllArgsConstructor 어노테이션 추가로 해결

오류 2025.07.24

[Spring] Oauth 연동 - 일반 회원가입 기능 구현하기

📌 기준 스펙Spring Boot 3.4.4JDK17Mysql 8.0.331. UserEntity@Getter@Setter@Entity@NoArgsConstructor@Table(name = "user")public class UserEntity implements UserDetails { @Id @Comment("사용자 ID") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Comment("사용자 명") @Column(nullable = false, length=50) private String username; @Comment("이메일") @Column(nullable = false, unique = true, lengt..

Spring 2025.07.18