분류 전체보기(180)
-
📒 PlanWith 회고 ( 1 )
하하 이것이(PlanWith) 뭐냐면데브코스 최종 플젝이다...!뒤늦은 회고 시작 😉 PlanWith 간단 소개 및 기능 정리💡 PlanWith : 나의 일정 및 할 일을 나 대신 관리해줄 AI 비서 서비스기능 목록[ 일정과 할 일을 캘린더에서 통합 관리 ]캘린더를 통한 일정과 할 일 관리월별, 주별, 일별 조회 가능[ AI를 활용한 스케줄 기입 자동화 ]AI 챗봇과 대화를 통해 스케줄 자동 분배( ex. 클린코드 20페이지부터 100페이지 까지 이번 주에 읽고 싶은데, 하루 분량 계산해줘 )AI 자연어 처리를 이용해 캘린더에 스케줄 자동 등록( ex. 이번주 일요일 7시에 저녁약속 일정 잡아줘 → 이번주 / 일요일 / 7시 / 저녁 약속 / 일정 )[ 그룹 단위 투두, 일정 관리 ]스터디나 프로젝..
2025.03.04 -
🦉 뀨업 - 이화 백준 사이트 리팩토링 ( 6 ) - CORS가 또...
저번 회의 내용 요약로그인 + 문제 리프레시 기능을 위해 쿠키 사용하기로 결정리프레시 버튼 클릭 > 쿠키 확인>> 쿠키 있으면 : GET /problems/refresh로 요청>> 쿠키 없으면 : POST /members/login?handle={백준핸들}로 요청 보내서 사용자로부터 핸들 입력 받은 뒤 쿠키에다가 저장 > GET /problems/refresh로 요청이때 우리 서비스는 프론트엔드와 백엔드가 서로 다른 서버에 배포되어 있고서로 다른 서버끼리 통신하기 위해서는 CORS 설정을 해줘야 함이때 Chrome 브라우저에서쿠키 설정을 SameSite=None, Secure=true로 하면서로 다른 서버에서 쿠키를 주고받을 수 있다다만, Secure=true로 하게 되면 https 통신만을 허가하기 때..
2025.03.01 -
🦉 뀨업 - 이화 백준 사이트 리팩토링 ( 5 ) - CORS, 쿠키랑 싸우기
오늘 뀨업 팀원들랑 만나서 로그인 및 문제 리프레시 로직 확인했는데CORS 에러가 났다... 그래숴 WebConfig 클래스를 만들어서 CORS 설정을 했는데@Configurationpublic class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOriginPatterns("http://localhost:3000") // 테스트 후 프론트 URL로 변경 예정 .allowedMethods("GET", "POST", "PUT"..
2025.02.01 -
🦉 뀨업 - 이화 백준 사이트 리팩토링 ( 4 ) MyBatis Migration
기존 뀨업 서비스의 코드는 JDBC 기반이었다...게다가 서비스 인터페이스 정의 안 하고 냅다 서비스 구현체로 코딩했다...그래서 기능에 대한 수정 회의가 있을 때마다 거의 모든 클래스들 들락날락하면서 코드를 수정했다... 이대론 안 되겠다 싶어서전체적으로 코드 리팩토링을 진행했다! 🔧 리팩토링 방안과 이유 1. MyBatis로 마이그레이션SQL 쿼리들이 이리저리 흩어져 있고, 커넥션 관리 때문에 코드가 잔뜩 길어져서 수정하기가 빡세다-> 도메인별 XML 파일에 SQL문 한꺼번에 관리 가능-> MyBatis의 SQLSession이 커넥션 관리를 대신 해줌 2. Service Interface 작성기능 구현 방법이 조금씩 계속 수정되고 있기 때문에필요한 역할들을 Service Interface에..
2025.01.17 -
🍀 [ 김영한 스프링 핵심 원리 - 기본편 ] Section04. 스프링 핵심 원리 이해2 - 객체 지향 원리 적용
[ 문제점 ]클라이언트 코드(Service 구현체)에서 할인 정책의 구현체를 직접 생성 및 사용DiscountPolicy discountPolicy = new FixDiscountPolicy();=> OCP 위반 : 구현체의 변화가 필요할 때 클라이언트 코드를 수정해야 함=> DIP 위반 : 인터페이스(역할)이 아닌 구현체를 참조 [ 해결 방안 ] 구성 영역과 사용 영역을 분리하자구성 영역 : 클라이언트 코드에서 사용하기로 결정한 구현체들 정의사용 영역 : 주입받은 구현체로 로직 수행 / 사용 영역에서는 각 정책에 대한 구현체는 드러나 있지 않음 구성 영역 - AppConfigpublic class AppConfig { public MemberService memberService() { ..
2025.01.16 -
🍀 [ 김영한 스프링 핵심 원리 - 기본편 ] Section03. 스프링 핵심 원리 이해1 - 예제 만들기
[ 예제 설명 ]회원- 회원 가입, 조회- 등급 : VIP, BASIC- 자체 DB 구축 가능, 외부 시스템과 연동 가능주문과 할인 정책- 상품 주문- 할인 정책 : 고정 금액(1000원) 할인 / 할인율 적용- 할인 정책은 변경 가능성 높음 [ 구조 ]회원 도메인 협력 관계, 회원 클래스 다이어그램, 회원 객체 다이어그램비즈니스 요구 사항들을 분석하면서 도메인별로 필요한 역할들을 정리하고다이어그램들을 통해서 도메인과 클래스 구조를 확립했다 [ 코드 ] 다형성 살려서 개발MemberService -> MemberServiceImplOrderService -> OrderServiceImplDiscountPolicy -> FixDiscountPolicy, RateDiscountPolicy: ..
2025.01.16