분류 전체보기 54

[Spring_6 2차] MonoRepo 와 MultiRepo

MSA (Microservices Architecture) 환경에서 MonoRepo 와 MultiRepo 방식은 코드 저장소를 어떻게 구성하느냐에 따라 서비스 운영, 배포, 협업 등 여러 측면에 영향을 줍니다. 방식 설명Monorepo모든 마이크로서비스를 하나의 Git 저장소에 관리Multirepo각 마이크로서비스마다 독립된 Git 저장소를 별도로 운영 ✅ Monorepo: 하나의 저장소에 모든 서비스📌 장점일관된 개발 환경 구성공통 ESLint, Prettier, CI/CD 파이프라인 등을 쉽게 공유하고 통일 가능개발자 온보딩 속도 향상코드 간 참조 용이서비스 간 내부 라이브러리 공유가 간편변경 영향 파악이 쉬움 (e.g., 전체 빌드/테스트)트랜잭션성 유지여러 서비스에 걸친 변경 사항을 하나의 커밋..

Back-End 2025.05.02

[Spharos_6기 복습] Spring Security 와 로그인

⚡ 발단 스프링 시큐리티를 구현하고,로그인 서비스를 구현하는데,자꾸 403 Forbidden 에러가 발생했고,어디가 문제인지 몰라서 디버깅을 해보기로 했다.디버깅을 해보니 인증 메서드 부분에서 자꾸 에러가 발생했다.발생하는 에러 종류는 BadCredentialsException 이었다.이런 에러가 뜨는 이유는 비밀번호 불일치 때 발생한다고 하는 예외 처리라고 한다.그래서 패스워드가 암호화가 내부적으로 안되는 건가??하고 계속 파보고 파보게 되었다.그래서 패스워드 일치 유효성 검사가 없는 건가? 하고로직을 구현도 해봤는데, 로그인이 되지 않았다.더 알아보니, 패스워드 일치 유효성 검사는 따로 하지 않아도 되는게구현한 DaoAuthenticationProvider 가 내부적으로 패스워드 일치 유효성 검사를 ..

Back-End 2025.04.01

[Spharos_6기 복습] Spring Security 와 패스워드 암호화

⚡ 발단  스프링 시큐리티를 통한 로그인을 구현을 완료하고,포스트맨으로 확인을 해보는데,자꾸 로그인 요청에 실패하였다.로직을 확인해도 문제가 없는 것 같았는데, 자꾸 로그인 요청이 실패했다.  📌 원인  여기저기 구글링하고, 챗지피티를 이용해 알아보니패스워드 암호화가 되지 않으면 Spring Security 에서 로그인이 절대 성공되지 않는다.라는 것을 알게 되었다.기본 적인 기능만 구현하고 고도화하려고, 패스워드 암호화를 미뤄뒀었다.패스워드 암호화를 하지 않고 DB 에 저장하려고 한게 트러블 슈팅의 원인으로 발견되었다.(역시 스프링 시큐리티 일잘하고만..!! 보안을 위해 그런거겠지?) 🔐 스프링 시큐리티를 통한 회원가입과 로그인1. 회원가입시 : 비밀 번호를 암호화해서 저장passwordEncode..

Back-End 2025.03.31

신세계 I&C - Spharos Full-Stack 6기 입과 솔직 후기

Contents1. 선발 절차 (지원부터 합격까지)2. 스타트 캠프 (1주차)3. 1차 프로젝트 (2주차 ~ing)4. 시설 및 혜택5. 앞으로의 각오 (TMI)    1. 선발 절차 (지원부터 합격까지) 나는 24년 7월 15일 ~ 11월 25일까지 진행된 스파르타 코딩클럽을 수료하고,인프런 강의를 들으며 혼자 공부하던 중다른 여러 사람들과 만나서 공부하고 싶기도 하고, 프로젝트도 진행할 수 있길래스파로스 풀스택 6기 과정에 참여해보고 싶다는 생각이 들었다. 나는 사실 늦은 나이에 개발자 쪽으로 취업을 희망하였기에,싸피는 나이 제한 때문에 지원할 수 없었지만,스파로스에서는 다행히도 나이 제한에 걸리지 않았다.그래서 나처럼 젊지 않은 나이에 개발자 쪽으로 새로운 시도를 하시는 분들이 계시다면..?적극 추..

개발 일기 2025.03.24

20250309 Git 심화 명령어 정리 ( Revert , Reset , Restore )

[1] Revert : 커밋을 남기고 되돌리기 ( 이전 커밋을 되돌리는 새로운 커밋 만들기 )- 안전한 방식으로 특정 커밋을 취소할 때 사용한다.- 기존 커밋 기록은 유지된다. ( 히스토리 보존 )- 팀원들과 협업할 때 추천 ! ( 원격 저장소와 충돌이 없음 ) - 즉, 기존 커밋을 지우지 않고, 되돌리는 새로운 커밋을 추가하는 방식이다. git revert  장점- 협업할 때 안전하다. ( 커밋 히스토리가 유지되므로 팀원들과 충돌 없음 )- 특정 커밋만 선택해서 되돌릴 수 있다.단점- 새로운 커밋이 생성된다.- 커밋 히스토리가 지저분해질 수도 있음 [2] Reset : 커밋을 없애고 되돌리기- 커밋을 없애고 되돌린다.- 협업 시 주의 해야 함 ( 원격 저장소와 충돌 발생 가능 )- 3가지 옵션 ( --..

카테고리 없음 2025.03.09

20250207 SQL 3-2주차 : 조건에 따라 포맷을 다르게 변경해야 한다면

IF [1] 함수명 : if [2] 사용 방법if(조건, 조건을 충족할 때, 조건을 충족하지 못할 때) [예시 1]select restaurant_name, cuisine_type "원래 음식 타입", if(cuisine_type='Korean', '한식', '기타') "음식 타입"from food_orders 해석만약 cuisine_type 이 Korean 이면 컬럼을 '한식' 으로 해주고,그렇지 않은 컬럼은 '기타'로 표시한다. [예시 2] '문곡리'가 평택에만 해당될 때, 평택 '문곡리'만 '문가리'로 수정select addr "원래주소", if(addr like '%평택군%' replace(addr, '문곡리', '문가리'), addr) "바뀐 주소"from food_orderswhere a..

카테고리 없음 2025.02.07

20250207 SQL 3-1주차 : 필요한 문자 포맷이 다를 때, SQL로 가공하기

REPLACE [1] 사용 방법replace(바꿀 컬럼, 현재 값, 바꿀 값) [예시 1]select restaurant_name "원래 상점명", replace(restaurant_name, 'Blue', 'Pink') "바뀐 상점명"from food_orderswhere restaurant_name like '%Blue Ribbon%' [예시 2]select addr, replace(addr, '문곡리', '문가리') "바뀐 주소"from food_orderswhere addr like '%문곡리%'  SUBSTRING [1] 함수명 : substring (substr) [2] 사용 방법substr(조회 할 컬럼, 시작 위치, 글자 수) [예시 1]select addr "원래 주소", substr(a..

카테고리 없음 2025.02.07

20250204 SQL 2주차

숫자 연산자와 기본 엑셀 함수 적용 [1] 숫자 연산자숫자 연산자의미+더하기-빼기*곱하기/나누기 [2] 기본 엑셀 함수(1) 합계 및 평균 함수합계 : SUM(컬럼)평균 : AVG(컬럼)(2) 전체 데이터 갯수데이터 갯수 : COUNT(컬럼)컬럼명 대신 1 혹은 * 사용 가능몇 개의 값을 가지고 있는지 구할 때 : DISTINCTselect count(1) count_of_orders, count(distinct customer_id) count_of_customersfrom food_orders (3) 데이터의 최솟값과 최댓값최솟값 : MIN(컬럼)최댓값 : MAX(컬럼)select min(price) min_price, max(price) max_pricefrom food_orders  GROUP B..

카테고리 없음 2025.02.04

20250128 SQL 1주차

[1] SQL 기본 용어 [1] SQL : 데이터베이스와 대화를 하기 위한 언어[2] Query : SQL 을 이용하여 데이터베이스에 요청을 하는 질의[3] 데이터베이스 : 데이터가 저장되어 있는 큰 폴더[4] 테이블 : 엑셀과 유사한 구조로 데이터를 가지고 있다.[5] 컬럼 : 테이블의 각 열을 컬럼 혹은 필드라고 부른다. [ 참고 ] DBeaver 란?- SQL 을 보다 손쉽게 사용할 수 있도록 도와주는 도구 [2] SQL 기본 구조 1 - SELECT 와 FROM [1] 기본 구조select [컬럼]from [테이블]    - SELECT : 데이터를 가져오는 기본 명령어, 데이터를 조회하는 모든 Query 에 사용됨.  - FROM : 데이터를 가져올 테이블을 특정해주는 문법  - * : 모두, ..

카테고리 없음 2025.01.28