개발일지

2024.01.29 TIL,백오피스 KPT 회고록

과일바구니♡ 2024. 1. 29. 21:02

1. 배운내용

   1) 알고리즘 코드카타

       

의식의 흐름

1. 최대공약수는 두 수의 공통 약수 중의 최대값, 최소공배수는 두 수의 공통 배수중의 최소값이다.

2. 근데 이걸 어떻게 구했더라...?

3. 초등학생에 빙의하여 머리를 쥐어싸매보자 ㅠㅠ

 

해결 코드

import kotlin.math.*

class Solution { fun solution(n: Int, m: Int): IntArray {

return intArrayOf(gcd(n, m), (n * m / gcd(n, m))) }

fun gcd(n: Int, m: Int): Int { if (n == 0) return m else if (m == 0)

return n else { return gcd(max(n, m) % min(n, m), min(n, m)) } } }

 

여기서 조금 더 간단히 하면...

math 임포트 제거하면

class Solution { fun solution(n: Int, m: Int): IntArray {

return intArrayOf(gcd(n,m), ((n*m)/gcd(n,m))) }

fun gcd(n :Int, m :Int) : Int { if (m > n) {

return if (n == 0) m else gcd(n, m%n) } else { return if (m == 0) n else gcd(n%m, m) } } }

간단히 하는 법을 잘 모르겠어서 찾아봄..

 

유클리드 호제법

최소공배수(LCM) = (두 수의 곱) / (최소공약수) 라고 한다!

그러므로 최소공약수를 찾는 것만 만들면 되는데,

최소공약수(GCD)는 (큰 수) / (작은 수) 를 반복하며 큰 수 대신 나머지를 대입하다가, 

한 개의 수가 0이 되는 순간 나머지 수가 최소공약수

 

띠용.....? 그러므로 재귀함수가 필요함

 

라고 합니다...

 

2. 백오피스 프로젝트 B반 발표, 회고록

B반 피브백

b-1 이동욱 발표. ppt로 발표함. 회고는 팀원들이 돌아가면서 발표함. 배표까지 완료

박현재튜터 피드백- 할수 있는 것 다 해보신듯 하다. 시연이 없는게 아쉽다. 방예약시 로직 공유했으면 좋겠다(- 이동욱: 리드미에 올려 놓겠다라고 대답함. 계층분리가 중요하다고 느꼈다.) 레이어 분리하면 역할나눔이 확실해진다. 발표중간 DB 보여주는것등 백엔드 개발자가 보여줘야 할 부분들 보여주었다. 방예약등 업데이드엣 키워드 검색해보는것을 권합니다.

리셋 패스워드는 3개 가져오고 3개 지우는 방식이 있다.

 

b-2 장준용발표, 깃 크라켄 사용애기

박현재 튜터님 피드백- 깃 크라켄을 사용했지만, 인텔리제이 테스트 기능도 좋아서 사용하기 좋다.

조수진 트랙매니저 피드백- PR과 이슈 잘 활용했다. 처음에 어려운점은 없었는지? - 박규희(1조) 사용하는 방법은 어느정도 익힌것 같다. 2조- 풀리쉐트 전에 내용을 슬랙방에 공유하고, 풀리퀘스트를 확인했다.

 

b-3 곽준선 발표, 깃허브 프로젝트 기능사용, 인테리 제이 테스트 기능활용, 깃 사용이 어느정도 익숙해지지 않았을까..?
박현재 튜터 피드백- 이벤트 스토밍 사용한 부분 뿌듯하다. 깃허브 프로젝트 기능사용 좋다, 거기서 우선순위(프라이빗과 사이즈설정) 기록이 좋았다. 이슈를 써보면 알겠지만, 여러사람이 한 작업에 같이 하지 않으면 여러브랜치를 사용하지 않는.  

인텔리제이에서 어플리케이션- 얌이에  로컬, dev, 운영(프로드 프로파일) 등 환경설정을 다르게 해서 실행이 가능하다. 사용하기를 권한다.(강의에서는 다루지 못한 내용이다) 

리프레쉬 사용자승인토큰는 받아야 할 정보는 받고, 관리, 전송, 저장을 어떻게 하는가가 중요하다.(나눠서 DB에  관리하는 것이 핵심이다) 

조수진 트랙매니저 피드백- 도식화 되어있어 프로젝트를 한눈에 파악하기 좋았다.

 

b-4 최준용 발표. 디아노미(그리스어-배달) 배달의 민족을 모델로 백오피스 프로젝트를 구성했지만, 다른점은 있다. 핵심로직 소개, 어려웠던 점 발표함. 

박현재 튜터 피드백- ERD 복잡했을것 같다. 주문 도메인도 어렵지만, 더 깊이 가면 결제, 배송, 오더상태 정보등 동시성 관리가 어렵다.

시도는 좋았습니다.

조수진 트랙매니저 피드백- 기획도 잘했고, 협업도 잘했습니다. 다만 배달의 민족을 참고했다고 하지 클론했다고 표현하지 않았으면 합니다.

 

b-5오재영발표, 기술사용이유를 노션에 적어서 발표함, 배달의 앱이 컨셉, 소셜로그인 시도 했으나 미해결된 상태이다.

박현재 튜터- 프레임워크, 라이브러리 사용 고민 과정이 있어서 좋았습니다. 스프링 관련 정보을 익히면 나름 획일적인 코드 작성이 가능합니다.(스타일, 컨밴션, 아키덱쳐 맞추기) 스프링에 다양한 기능이 있어서 JBM이 설정가능하기도 합니다. 컴파일러로 괴롭혀 성능을 업시킨것이 스프링이어서, 가벼운 MSA 프레임워크를 쓰기도 합니다.

소셜로그인 로그아웃 시도는 좋습니다. 다만 충돌이 안 나는데, 이에 관해서는 오오스- 플로어 4가지(오오스2.0, 구글오오스) 등 검색해서 방법을 알아보고 하나를 선택해서 쓰는 것이 좋습니다. 그 후에 시퀀스 아이아그램 그려서 정리하는 것을 권합니다.

 

b-6 변무훈 발표, 실시간 식당예약시스템

박현재 튜터 피드백- 블랙 리스트 아이디어가 좋습니다.(상태관리),  시스템이 커지면 복잡하게 되고, 예상치 못한 경우도 있습니다.

리퀘스트로 받을때 A ->B 로 갈때 A가 맞는지 검증도 필요합니다.

 

박현재 튜터 피드백 전체메시지- 인증 인가 부분이 힘들었던 것 같습니다. 롤 하이어키-스프링부트에서 지원, 시큐리티에서 제공- 페이션이벨로이터 aop 쉽게 연결, 검색해서 알아보기를 권합니다.

 

B3조 KPT 회고록

K- event storming 잘 됐다. GitHub Project 이용한 프로젝트 관리(다음에 다른 프로젝트에서도 사용해보면 좋을 듯합니다.),

API & ERD 작성(각자 한번씩 API와 ERD 작성을 해봄으로써 만들려고자 하는 프로젝트를 이해하는데 도움이 되었다
각자 작성한것을 통합함으로써 자신이 생각을 하지 못했던 부분에 대해서 좀더 알게 된것 같다),

Github Pull Request 코드리뷰(다른 팀원들의 진행사항을 간단하게나마 파악할 수 있어 좋았다.)

 

P- 와이어프레임, 화면 등등 없음(와이어프레임이나 기타 화면 등 없어서 의사소통할 때 애매했던 부분이 있었던 듯합니다.)

테스트 코드 작성하지 못함(시도는 했으나 결국 자동 테스트를 위한 테스트 코드를 작성하지 못했음), 

일관성 있는 PR, commit message 컨벤션 필요(1조? 2조? 발표에서 보면, 팀만의 PR 내용, commit message
규칙을 정해서 PR, 커밋 시 이에 맞춰서 작성했습니다. 다음 프로젝트에서는 PR 내용, commit message 규칙을 정해보고 싶네요),

베이스가 부족해서 개발속도가 느렸다(나름대로 코드개발을 진행했지만 부족한 부분이 있어 개발속도가 느렸다.),

코드 통합이 제대로 되지 않았다(각자 domain을 하나씩 맡아서 하다보니 코드가 일관성있게
통합이 안된것 같다)

 

T- PR 시스템 활용PR 시스템 활용(다른 팀원이 작성한 코드를 보면서 팀 내에서나 개인적으로라도 이해하고 공부해보고 넘어가면 실력 향상에 도움이 될 듯 하다.), 화면의 중요성(- 첫날에 화면 스케치나 와이어프레임 작성하기),

전체적인 프로젝트 도메인 훑기(- 꼭 함께 event storming이나 API 명세, ERD 각각 작성하는 방법이 아니더라도 개개인별로 프로젝트 전체 도메인에 대해 생각할 시간을 가져보는 시간이 있으면 좋을 듯합니다.
- 앞서 말한 event storming이나 API 명세 작성 등의 방식처럼
 약간의 강제성이 부여될 필요도 있지 않을까 합니다.),

이번 프로젝트 코드 보고 따라치기(이번 프로젝트를 보고, 코드를 따라치면서 알아가는 시도가 필요한것 같습니다.)

'개발일지' 카테고리의 다른 글

2024.01.31 TIL  (0) 2024.01.31
2024.01.30 TIL  (1) 2024.01.30
2024.01.26 TIL  (0) 2024.01.26
2024.01.25 TIL  (0) 2024.01.25
2024.01.24 TIL  (0) 2024.01.24