전체 글 93

최종프로젝트 (BuySell) 중고거래 플랫폼 서비스

벌써 최종프로젝트 주차가 찾아왔다. 저번주부터 시작이었는데, 너무 바빠서 TIL 올릴 시간이 없었다. (핑계임) 프로젝트 기획을 두 번 하게 되었다.... 첫 기획은 카카오지도 API를 이용한 배낭여행 코스추천 서비스였다. 안해본 지도API 기능을 사용해 무언가 만들고자 했던게 굉장히 재밌어보였는데, 까고보니 프론트였다 지도API를 사용을 부수적인 기능으로 두고, 백쪽을 조금 더 이용하기 편하게 지도API를 사용하려고 했으나 사실 지도API를 의존하는 서비스 형태가 되어버려서 엎고 새로 기획하게 됬다. 중고거래 플랫폼 BuySell 약 3달간의 커리큘럼에서 배운 내용을 모두 사용할 수 있는게 아무래도 게시판 혹은 쇼핑몰 형태의 서비스라고 생각되었다. 주제가 조금 진부할 수 있으나, 우리는 백엔드 공부를 ..

Redis와 Cache 정리글 (수정 전)

레디스 key:value 형태 쿼리가 아닌 커맨드 기반 비관계형 데이터베이스 (NoSQL) in memory cache disk가 아닌 memory에 데이터를 저장(속도가 빠른 대신 휘발성) single threads 사용 (동시성 관련해서 스프링부트보다 관리가 더 편할 수 있음) 자료구조, 명령어는 공식문서 참고해라 레디스를 사용할땐 어떤 비즈니스 요구사항에서 어떤 데이터를 레디스에 저장할 지를 토대로 적절한 자료구조를 고민하자 레디스가 사용될 때 Cache 저장소로써의 활용 In-memory 구조로 빠르게 동작하면서 다양한 자료구조를 지원 Scale-out 상황에서 중앙 저장소로써의 활용 (대략적으로 이해는 했으나 공부가 더 필요한듯) 레디스는 자체적으로 영속성을 위한 기능을 제공하지만, 영속성을 목..

카테고리 없음 2024.02.23

Oauth2.0 소셜로그인 구현

Oauth 2.0의 4가지 프로토콜 중 Authorization code grant 방식에 대한 정리 글 Authorization Code Grant 권한부여를 하기 위해 자체 생성한 Authorization Code를 전달하는 방식 용어정리 Resource: OAuth Provider로 부터 가져오고자 하는 자원 Resource Owner: Resource의 주인. (사용자) OAuth Provider: 쉽게 말해 소셜로그인 기능이라면 카카오, 구글이 된다 (인증을 담당하는 Authorization Server도 별개로 가지고 있다.) Authorization Server: 인증을 처리해주는 서버 Client: Resource를 사용하기 위해 OAuth Provider에 접근하는 application ..

SpringBoot 2024.02.17

백오피스 프로젝트

🛵배달 시스템 Backend Server 🎁 프로젝트 개요 개발 기간 : 24.01.22 ~ 24.01.29 (1주) 개발 환경 : Kotlin, Spring Boot, Supabase, PostgreSql 프로젝트 이름 : 배달 프로젝트 프로젝트 설명 : 배달 시스템을 모방한 백엔드 시스템 개발 👩 Team B05 오재영 github 역할 - 와이어 프레임, 프로필 관리, 계좌 관리, 인증/인가 박유진 github 역할 - ERD, 가게 CRUD, 메뉴 CRUD 김성현 github 역할 - ERD, 리뷰 / 리뷰 답글 CRUD 윤승환 github 역할 - API 명세, 주문 Flow Chart, 장바구니 / 주문 CRUD 김현득 github 역할 - 가게 CRUD 초안 작성 📚기술스택 Backend S..

뉴스피드 프로젝트 마무리

ReviewUs 프로젝트 소개 소비자들이 사용한 제품, 장소, 서비스 등에 리뷰하여 정보를 공유하는 뉴스피드 웹 서비스를 구현하고자 하였으며,댓글 알바 없는 순수 리뷰 실 사용자 서비스를 만들기 위해 기획했습니다. 팀원 🤝 이동욱 김성현 한정민 이제원 ⚙️ Backend Stack )) 와이어 프레임 구상 API ERD 패키지 구조 뉴스피드 프로젝트 주차 KPT 회고 일시: 2024-01-15 (월) 16시~16시반 (30m) 참석자: 4명 (동욱, 성현, 정민, 제원) 내용: KPT 회고 KEEP 컨벤션이란게 어떤 것이고 팀 개발 활동에서 어떠한 영향을 주는지에 대해서 이해하고 사용했다. 팀 단위로 깃을 사용해보는 경험이 많은 도움이 되었다. 서로 소통을 노력하는 부분이 좋았다. 팀 분위기가 팀 개발 ..

내일배움캠프 팀프로젝트 - 뉴스피드 프로젝트(2)

뉴스피드 프로젝트 3일차 오늘 한 일 Reply 비즈니스 로직 코드수정 C,U,D 기능 swagger에서 테스트 완료 문제 해결 1. status 500 에러 발생으로 인해 DB수정 후 spring을 실행했는데, Table [reply] contains physical column name [feed_id] referred to by multiple logical column names: [feed_Id] 에러가 발생했다. 이유는 컬럼이름의 대소문자를 잘 못 입력해서였다. 수정 후 다시 Run을 했는데 2차적으로 member_id 관련 에러가 발생. 또 다시 DB수정, 컬럼 이름관련해서 에러가 많이 발생했다. 항상 대소문자, 언더바 구분을 잘해서 작성하는 습관을 들여야겠다. 2. ExceptionHand..

프로그래머스 코딩테스트 / 나머지가 1이 되는 수

https://school.programmers.co.kr/learn/courses/30/lessons/87389 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr class Solution { fun solution(n: Int): Int { for (x in 1..n - 1) { if (n % x == 1) return x } return 0 } }

Algorithm 2024.01.10

내일배움캠프 팀 프로젝트 - 뉴스피드 프로젝트 (1)

뉴스피드 프로젝트 프로젝트 소개 프로젝트 명: 리뷰어스 (reviewus, reviewers) 소비자들이 사용한 제품, 장소, 서비스 등에 리뷰하여 정보를 공유하는 뉴스피드 웹 서비스이다. 댓글 알바 없는 순수 리뷰 실 사용자 서비스를 만들고자 하여 계획하게 되었다. 필수 구현 기능 게시물 CRUD 뉴스피드 기능 (메인페이지, 전체 조회페이지) 상세보기 (디테일 페이지) 댓글 CRUD 사용자 인증/인가 (회원가입, 로그인/로그아웃, 인가) 프로필 관리 추가 구현 기능 이메일 가입 및 인증 기능 사진 추가기 기능(S3) 좋아요 기능 와이어 프레임 ERD API 명세 팀 프로젝트가 시작됐다. 컨디션 관리를 못해 집중도 안되고 몸도 별로 안좋았어서 (핑계) 학습량이 많이 부족했다. 그래서 내 실력에 자신이 없..

Spring 에러 (please set 'javax.persistence.jdbc.url')

'please set 'javax.persistence.jdbc.url 'hibernate.connection.url' 'hibernate.dialect' - 에러 이미지 하이버네이트 (Hibernate)의 설정이 잘 못 되어 나온 오류같은데.. 에러를 극복하는 건 좋지만 지금 하이버네이트고 컨테이너 어쩌고 하면 난 졸도할지도 모른다.. 간략하게 표현하자면 스프링에서 Dialect 설정을 찾지 못해서 생긴 에러이다. 해결방법 application.properties에 spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.MySQLDialect 를 추가해서 해결...! 참고: https://velog.io/@rockstar/Docker-MySQL-..

TroubleShooting 2024.01.02

Spring 입문 - DI (의존성 주입), IoC (제어의 역전), Bean

Dependency Injection (의존성 주입) 객체가 자체적으로 필요로 하는 의존성을 생성하는 것이 아니라, 외부에서 주입받는 디자인 패턴입니다. 객체간의 결합도를 낮추기 위해 사용합니다. 주로 Contructor 기반 주입, Field 기반 주입, Setter 기반 주입이 있습니다. DI를 사용하지 않을 경우 package org.example.ChickenStore class ChickenStoreWithoutDI { private val chicken: Chicken = FriedChicken() fun getCookedChicken(): Chicken { chicken.cook() return chicken } } class ChickenStoreWithoutDI2 { private val..

SpringBoot 2023.12.26