분류 전체보기 43

아웃소싱 프로젝트 KPT 회고

Keep - 현재 만족하고 있는 부분깃허브 전략을 통해 충돌 없이 협업을 진행하였다.정기적인 회의를 통해 서로 어디까지 진행되고 있는지 알수 있어 좋았다.컨벤션과 룰 프로그래밍 명명 규칙을 정하고 시작해서 좋았다적절한 역할분담을 통하여 프로젝트를 진행하는데 수월하였다.Problem - 불편하게 느끼는 부분시간 부족으로 인해 PR에 대한 충분한 코드리뷰를 진행하지 못했다.계층형 패키지 구조를 사용하였는데 규모가 커지면서 보기 불편해졌다.실제 배달 앱에 사용하기에 부족한 부분들이 아쉬웠다.데드 타임을 정하지 않고 시작은 했던 부분이 아쉬웠다.상호간에 진행 상황을 별로 공유하지 못했던 점이 아쉬웠다.추가 구현 부분을 나중에 급하게 정한 점이 아쉬웠다Try - Problem에 대한 해결책, 당장 실행 가능한 것..

TIL 2024.06.25

좀 더 협업에 가까이 가보자!!

새로운 팀 프로젝트에서 팀장을 맡았다.이번에는 좀더 협엽에 가까운 프로젝트를 위해 팀 프로젝트 시작하기 전에 미리 공부를 열심히 했다.이번에 적용하고 싶은거1. git issue 사용2. commit 메세지 통일3. 깃허브 룰 정하기  커밋 메세지커밋 메세지를 통일하기 위한 플러그인!! 좀더 예쁘고 가시성 좋은 커밋을 위해 팀원들에게 공유를 하고 규칙을 정했다.  깃이슈깃이슈를 배우기 위해 다른 팀장님이 추천해준 유튜를 통해 혼자 열심히 공부를 해 봤다.그리고 팀원과 공유를 위해 메모장에 정리를 해놨다. 그리고 실제로 적용해서 만들어 봤다. 그 후 알아보다 보니 깃이슈 템플릿을 알게되었다.우선 팀원들도 거의 처음 사용해 보는 관계로새로운 기능 생성 / 기능 업데이트두 가지 경우로 분리하여 만들어 놨다. ..

TIL 2024.06.21

인텔리제이 버전 문제 해결

내일 팀 프로젝트를 대비하여 깃허브 이슈를 사용하기 위해 연습용 레포지토리를 만들고 있었다.항상 하던거 처럼 Share Project On GitHub 를 사용하여 레포를 만들던 중 문제가 발생 했다. 이건 비슷한거 인터넷에 퍼온건데 이거랑은 문구가 좀 달랐다.어쨌든 만들어지지 않았다. 첫 번째 해결 시도:  토큰이 만료 됐다 생각하고 새토큰을 발급받아 보았다. 하지만 실패 토큰 문제는 아니였다. 두 번째 시도: 인텔리제이 버젼 업데이트 깃허브 커뮤니티를 통해 비슷한 문제를 공유한 글을 발견하고 댓글을 보니 버젼 업데이트를 하니 해결 되었다는 글을 발견했다.1.3 버젼으로 업데이트 하니 잘 생성 되는것을 확인하고 수업을 같이듣는 다른 동료들에게 공유 했다. 어쩌다보니 도움이 됐을 수도??https://g..

TIL 2024.06.18

GIT 다시한번 이해하자!!!(2)

이번에는 커맨드와 사용법을 위주로 공부해 보려 한다. 깃 다시한번 이해하자(2)!!! Git 도움말 보기 방법명령어에 대한 도움말을 보는 방법 두 가지$ git help $ man git-예시: git config 명령어의 도움말 보기 $ git help config git add -h  Git 저장소 만들기두 가지 방법으로 Git 저장소를 시작할 수 있음:아직 버전 관리를 하지 않는 로컬 디렉토리에 Git 저장소를 적용다른 곳에서 Git 저장소를 Clone  기존 디렉토리를 Git 저장소로 만들기 $ git init 이 명령어는 .git이라는 하위 디렉토리를 생성하며, 여기에 저장소에 필요한 기본 파일들이 포함됨이 명령만으로는 프로젝트의 어떤 파일도 관리하지 않음$ git add *.c$ git add..

TIL 2024.06.14

GIT 다시 한번 이해하자(1)

이번 팀프로젝트 아직 블로그에 정리는 못했지만 이번에는 의외로 다른 어려움은 크게 없었는데,깃을 사용하는 부분에서 부족함을 느껴서 다시 정리를 하고 넘어가려 한다. 깃 다시한번 이해하자!!! Git의 목표빠른 속도단순한 구조비선형적인 개발(수천 개의 동시 브랜치)완벽한 분산대형 프로젝트에도 유용할 것(Linux 커널처럼)Git은 매우 빠르고, 대형 프로젝트에 적합하며, 동시다발적인 브랜치를 잘 처리함 스냅샷 방식Git과 다른 VCS(CVS, Subversion 등)의 가장 큰 차이점은 데이터를 다루는 방식임대부분의 VCS는 파일들의 변화를 시간순으로 관리하지만, Git은 전체 저장소의 스냅샷을 기록함   Git의 로컬 명령어 실행거의 모든 명령이 로컬 파일과 데이터만 사용함네트워크에 있는 다른 컴퓨터가 ..

TIL 2024.06.13

applicaton.properties 환경변수 설정하기

중요한 정보를 환경변수로 숨겨보자!!! 스프링으로 하는 첫번째 팀 프로젝트!!주제선정, 회의는 프로젝트 카테고리에서 다루고 오늘은 오늘 배운것중 중요한것을 작성해보자. 나는 데이터 베이스를 로컬저장소가 아닌 다같이 공유하는 역할을 자처했다. firebase 처럼 무료로 온라인 저장을 할 수 있는 사이트가 있는 줄 알았다.하지만 방법은 쉽지 않았고, 결국 내 아이피를 통해 직접 접근하는 방식을 검색하여 알아냈다.많은 과정이 있었지만 결국 문제점은 나는 내 서버에 접근할 수 없고(공유기를 사용하기 때문에) ,다른 팀원은 내 서버에 접근 하는 상황이 만들어져 있었다. 이 때 환경변수를 사용하면 유동적으로 값을 지정 할 수 있어서 내 문제를 해결 할 수있고 그 뿐 아니라 진짜 좋은점은 보이면 안되는 중요한 정보..

TIL 2024.06.07

Token,RefreshTokebn 만들기

RefreshToken을 만들어 보자!!! 이번과제에 리프레쉬 토큰을 만드는 부분이 있어서 한번 배워보자!!리프레쉬 토큰 이란?리프레쉬 토큰은 엑세스 토큰이 만료되었을 때, 새로운 토큰을 발급해주기 위해 사용하는 토큰이다.리프레쉬 토큰은 엑세스 토큰에 비해 유효기간을 길게 설정한다. 이를 통해 클라이언트는 다시 로그인을 하지 않아도새로운 엑세스 토큰을 발급받아 지속적으로 서비스를 사용할 수 있다. 리프레쉬 토큰이 필요한 이유보안성 향상짧은 유효 기간의 액세스 토큰: 액세스 토큰의 유효 기간을 짧게 설정하면, 토큰이 탈취되더라도 잠시 후 만료되므로 보안 위험을 줄일 수 있다.리프레쉬 토큰의 역할: 리프레쉬 토큰은 더 긴 유효 기간을 가지지만, 클라이언트가 서버에 새로운 액세스 토큰을 요청할 때만 사용되므로..

TIL 2024.06.03

JWT(JSON Web Token) 사용하기

JWT이해라도해보자!!JWT란 무엇인가?JWT(JSON Web Token)는 JSON 기반의 토큰으로, 클라이언트와 서버 간의 인증 및 정보를 안전하게 교환하기 위해 사용된다.JWT는 세 부분으로 구성한다헤더(Header): 토큰 유형과 hash 알고리즘 정보를 담고 있다.페이로드(Payload): 사용자 정보와 클레임을 포함한다.시그니쳐(Signature): 헤더와 페이로드를 인코딩한 후 비밀 키로 생성한 서명으로, 토큰의 무결성을 보장한다.스프링 부트에서 JWT 사용하기1. 의존성 추가build.gradle 파일에 JWT 라이브러리를 추가하기 // JWT compileOnly group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5' ..

TIL 2024.05.31

의존관계 주입(DI)

의존관계 주입!! 이해라도 해보자!!!!  의존관계 주입 방법을 나누면 크게 4가지가 있다. ● 생성자 주입 ●  수정자 주입(setter 주입) ● 필드 주입 ● 일반 메서드 주입  생성자 주입생성자를 통해서 의존 관계를 주입 받는 방법 특징1.생성자 호출시점에 1번만 호출되는 것이 보장된다.2.불변,필수 의존관계에 사용@Componentpublic class OrderServiceImpl implements OrderService {private final MemberRepository memberRepository;private final DiscountPolicy discountPolicy;@Autowiredpublic OrderServiceImpl(MemberRepository memberRep..

TIL 2024.05.27

스프링 컨테이너와 빈

스프링 컨테이너와 스프링빈!!! 이해라도 해보자!!! 스프링 컨테이너 생성//스프링 컨테이너 생성ApplicationContext applicationContext =new AnnotationConfigApplicationContext(AppConfig.class); ApplicatinContext를 스프링 컨테이너라고 한다.ApplicationContext는 인터페이스이다.스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수있다. 스프링 컨테이너 생성 과정new AnootationConfingApllicationContext(AppConfig.class)스프링 컨테이너를 생성할 때 구성 정보를 지정해 주어야한다.위 코드에서는 AppConfig.class를 구..

TIL 2024.05.23