보라코딩
WW08 본문
240219
수술 후 2주만에 출근했다.
프로젝트도 바뀌고 자리도 바뀌었다.
유지보수가 아닌 개발을 하게 되었고
.NET이 아닌 스프링을 사용할 수 있게 되었다.
다시 재밌게 배울 수 있을 것 같아서 좋다 :)
정신없이 지나간 하루
공부할 것
- 협업 소프트웨어 Confluence : 아틀라시안에서 개발한 자바 기판의 소프트웨어
- gRPC는 구글이 최초로 개발한 오픈 소스 원격 프로시저 호출 시스템
- 타입스크립트 (ts는 typescript만 사용할때, tsx는 React Component 사용시)
- spring cloud
- 헥사고날 아키텍처
[Java, Spring] 계층형 아키텍처 vs 헥사고날 아키텍처
.
tjdtls690.github.io
240220
리액트에 타입스크립트를 적용하니 또 많이 어렵다...!
이번주는 To Do List 만들기로 했다.
타입스크립트의 중요성을 알고 나니 더 배우고 싶어졌다!
공부할 것
- JPA-Buddy : 기존에 DB에 있던 테이블을 엔티티 클래스로 자동 변환
- QueryDSL : 정적 타입을 이용해서 SQL과 같은 쿼리를 생성할 수 있도록 해 주는 프레임워크
ㄴ 컴파일 시점에 타입 체크가 가능 / 동적 쿼리를 직관적으로 확인하기 쉬움 /
- postgre
- context map msa 공부?
- 리액트쿼리(=TanStackQuery)에서 useQuery, useMutation 꼭 공부하기
useQueries | TanStack Query Docs
tanstack.com
- 리액트 커스텀 훅
custom hook 이란? React hooks custom hook 이란?
custom hook 이란? React hooks custom hook 이란? 오늘은 짧게 리액트 훅에서 커스텀 훅을 알아보겠습니다. 커스텀 훅이란 말 그대로 개발자가 스스로 커스텀 한 훅을 말합니다. 예를 들면 useState, useEffect,
ko-de-dev-green.tistory.com
- 리액트 아키텍처
- model mapper (MapStruct)
240221
- 리액트 + 타입스크립트 강의 감잡기 좋음
- 리액트쿼리 "@tanstack/react-query"
앱 전체에서 사용하려면 최상위 컴포넌트에 감싸줘야 함 <QueryClientProvider client={queryClient}>
[React] React-Query 기본 사용법 정리 (useQuery, useMutation)
[ 목차 ] 사용자에게 최신 데이터를 보여주려는 노력 useQuery useMutation queryClient.invalidQueries 사용자에게 최신 데이터를 보여주려는 노력 React-Query는 사용자에게 새로운 정보를 보여줄 수 있는 옵션
cheolsker.tistory.com
리액트쿼리는 강력한 데이터페칭도구입니다.
비동기 상태 관리를 도와주고 로딩, 에러처리, 리페칭, 캐싱 등
개발자가 생각하기 귀찮은 문제들을 대신 해결해주며
개발자는 무엇을 할것인지에 더 초점을 맞출 수 있도록 도와주는 라이브러리입니다.
- json-server : json 파일로 REST API Mock server 구축하는 툴
ㄴ 참고 : post시에 id 자동생성됨
JSON Server | PoiemaWeb
json-server는 json 파일을 사용하여 간단한 시뮬레이션을 위한 REST API Mock server를 구축할 수 있는 툴이다.
poiemaweb.com
240222
매일 새로운 것을 배워 퇴근할 수 있어 기쁘다 :)
- Redux에서 영감을 받은 Zustand의 스토어 구성(State, Reducer, Store)
ㄴ State : 현재 상태 저장 및 관리
ㄴ Reducer : store의 상태 변경 함수 정의
ㄴ Store : 상태와 리듀서를 통합하여 전역 상태 관리
- react + typescript + vite로 시작해보기
ㄴ npm create vite@latest [프로젝트 명] -- --template react-ts
ㄴ 실행은 npm run dev
[React, ts, vite] react + typescript + vite로 시작해보기
보통 react를 작업할때 create-react-app를 사용해 작업했는데, 이를 사용하면 번들러로Webpack를 사용하게 되는데 코드의 양이 늘어날수록 속도가 상당히 느리다는 걸 알았습니다. 이를 해결하기 위해
velog.io
- Eureka Server & Spring Cloud Gateway(하나의 생태계로 묶기)
ㄴ Eureka Server: 마이크로서비스 환경에서 각 서비스 인스턴스의 위치와 상태 정보를 등록하고 관리(이름만 알면 포트 정보 줄 수 있게) + 로드밸런싱 쉽게 사용 가능함!!
- id: 내마음대로
uri: lb://ABCSERVICE
predicates:
- Path=/hi/**
ㄴ Spring Cloud Gateway : 클라이언트와 다양한 마이크로서비스 간의 통신을 관리하고 라우팅을 제어
ㄴ 장점 : 보안을 Gate만 해도 되어서 편리(public으로 가능) + DB랑 관련 없음
Spring Cloud Gateway를 이용하여 게이트웨이 구성 및 유레카 서버 연동
0. 시작하며 이전 글(넷플릭스 유레카를 이용한 서비스 디스커버리, 등록 구현(with 스프링부트, GO, 플라스크))에서 넷플릭스 유레카를 이용하여 서비스 디스커버리를 만들었고 스프링부트, Go, 플
covenant.tistory.com
- MSA vs Monolithic
ㄴ MSA 하면 DB도 언어도 중요하지 않고 전략적으로 유용하고 다양하게 사용 가능 (Polyglot)
ㄴ kafka와 RestAPI 사용해서 통신
- 기존 회사 프로젝트는 SOA(Service-Oriented Architecture)
- 쿠버네티스 : 관제하고 있다가 자동으로 증설도 해줌
- Redis : 휘발성 DB로 시간 지정해 놓고 저장하고 사라지게 (전략 여러개 있음)
- CQRS 관련 Axon Framework 알아보기
[Spring boot] Axon Framework로 시작하는 CQRS 기초
많이 미루어진 Axon Framework에 대해 알아보도록 하겠습니다. 이 포스트를 다루기 전에 아주 오랜 시간 전, MSA의 트랜잭션 이야기 중 이벤트 소싱과 CQRS에 대해 다뤄본 적이 있습니다. 해당 내용을
blog.neonkid.xyz
- 도메인주도설계로 시작하는 마이크로 서비스 개발 (책 추천)
- Terraform : 현재 공급되는 가장 인기 있는 인프라 자동화 툴 중 하나
ㄴ 어떤 서버/위치/.. 등에 shell 실행해라
Kubernetes는 개발자가 컴퓨팅 클러스터 노드에 대한 배포 일정을 설정하고 컨테이너화된 워크로드를 적극적으로 관리하여 해당 상태가 사용자의 의도와 일치하는지 확인하도록 돕는 오픈 소스 컨테이너 오케스트레이션 시스템입니다.
반면, Terraform은 개발자들이 여러 퍼블릭 클라우드와 프라이빗 클라우드에 걸쳐 있는 완전한 인프라를 자동화할 수 있도록 지원하는 훨씬 더 넓은 범위의 코드형 인프라 툴입니다
- DB -> 코드 : JPA-Buddy
- 코드 -> DB : jpa ddl-auto-create 속성 5가지 유의해서 사용해야함
(create-drop은 코드 변경될 수 있으니까 사용하나 운영시에는 주로 none 사용_운영은 sql문 받아서 배포)
- QueryDSL 사용할 예정! (함수형)
ㄴ 참고) js에서는 knex라는 ORM도 있음
- gitbash 사용해서 포트 죽이기(리눅스 명령어 익숙해지기)