전체보기

Github으로 협업 하는법
1. 협력자(collaborator) 등록하기- 팀원들의 username 혹은 email로 추가 2. 코드 복사해 오기git clone . 복사본 만들어서 망치는 걸 방지하기 3. 브랜치 활용복사본 = 브랜치 4. 브랜치(복사본) 생성 명령어git branch 브랜치이름 5. 브랜치 확인 명령어git branch 6. 브랜치 이동 명령어git switch 브랜치이름git checkout 브랜치이름 7. 브랜치 한 번에 생성 & 이동git swtich -c 브랜치이름git checkout -b 브랜치이름 8. 새로운 브랜치에서 코드 수정 -> 저장 9. Pull Request 활용하기 10. Github 변경 코드를 내 컴퓨터에도 가져오기git pull origin 브랜치명 문제점1. Main 브..

Git 기본 명령어
Git- 코드 변경점 기록(버전 관리 도구)Github- 온라인 백업, 공유, 협업(온라인 코드 저장소) 1. 코드 관리를 시작하는 명령어git init - initialize(초기화하다, 초기 세팅하다)의 준말- 프로젝트 시작 전 딱 한 번만 입력하면 됨정확한 프로젝트 폴더(경로)에서 입력해야 함(터미널에서 pwd 명령어로 현재 경로 확인) 1.1 . git.git 이라는 폴더(숨겨진 폴더)가 생성-> ls -a 명령어로 확인 가능- 이 폴더에서 코드 변경점을 계속 추적 & 기록함(정확한 프로젝트 경로에 있어야 함) 2. 코드를 저장하는 명령어git add & commitgit add 파일명git commit -m "메시지 작성" 2.2 저장 명령어가 2개인 이유git add 파일명: 저장하기 전 저장..

PostgreSQL Homebrew로 맥북(M1)에 설치 및 접속하는법
homebrew로 PostgreSQL 설치brew install postgresql PostgreSQL 설치 확인postgres -VPostgreSQL 접속 하기# postgresql 실행brew services start postgresql# postgresql 접속psql postgres 콘솔 종료하는법\qPostgreSQL 실행 종료# postgresql 종료brew services stop postgresql

대규모 시스템 - 데이터 일관성 유지
대규모 시스템에서는 데이터 일관성을 유지하는 게 중요함이를 위해 분산 트랜잭션, 이벤트 소싱, CQRS등의기법을 사용할 수 있음 분산 트랜잭션(Distributed Transaction)- 여러 개의 독립된 시스템이나 데이터베이스에서동시에 일어나는 트랜잭션을 일관되게 관리하는 방법 - 단일 트랜잭션이 여러 시스템에 걸쳐 발생할 때,모든 시스템이 해당 트랜잭션을 성공적으로 완료하거나,모든 시스템이 트랜잭션을 실패로 처리하도록 보장이를 통해 데이터의 일관성을 유지할 수 있음 - 분산 트랜잭션이 필요한 이유는 마이크로서비스 아키텍처에서 여러 서비스가독립적으로 운영되기 때문 트랜잭션(Transaction)- 데이터베이스의 상태를 변환하는 작업의 단위로 ACID 속성을 보장 원자성(Atomicity): 트랜잭션은..

대규모 시스템 - 데이터베이스 최적화
데이터베이스 사용 최적화- 데이터베이스 인덱싱: 데이터베이스 인덱싱은 조회 성능을 크게 향상할 수 있는 방법 인덱스를 사용하면 데이터베이스는 데이터를 빠르게 검색할 수 있음 올바르게 설계된 인덱스는 읽기 성능을 적화 하고 쿼리 응답시간을 줄임 인덱스가 너무 많으면 쓰기 성능이 저하됨 - 데이터베이스 샤딩: 데이터베이스 샤딩은 데이터베이스를 여러 샤드로 분할하여각각의 샤드가 독립적으로 쿼리를 처리하도록 하는 방법 이를 통해 단일 데이터베이스에 대한 부하를 분산시킬 수 있으며,읽기 요청에 대한 응답 속도를 향상 시킬 수 있음 ex) 사용자 데이터를 여러 샤드에 분산 저장하여 읽기 성능 최적화 - 읽기전용 데이터베이스: 데이터를 주기적으로 동기화하여 최신 상태를 유지하면서 요청을 처리 이 방법은 주 데이터베이..

API 게이트웨이 (Spring Cloud Gateway)
API 게이트웨이란?- API 게이트웨이는 클라이언트의 요청을 받아백엔드 서비스로 라우팅 하고,다양한 부가 기능을 제공하는 중간 서버 - 클라이언트와 서비스 간의 단일 진입점 역할을 하며, 보안, 로깅, 모니터링, 요청 필터링 등을 처리함 API 게이트웨이의 주요 기능- 라우팅: 클라이언트 요청을 적절한 서비스로 전달 - 인증 및 권한 부여: 요청의 인증 및 권한을 검증 - 로드밸런싱: 여러 서비스 인스턴스 간의 부하 분산 - 모니터링 및 로깅: 요청 및 응답을 로깅하고 모니터링 - 요청 및 응답 변환: 요청과 응답을 변환하거나 필터링 Spring Cloud Gateway란?- Spring Cloud Gateway는 Spring 프로젝트의 일환으로 개발된API 게이트웨이로, 클라이언트 요청을 적절한 서비..

클라이언트 사이드 로드 밸런싱 FeignClient
로드 밸런싱이란?- 네트워크 트래픽을 여러 서버로 분산시켜 서버의 부하를 줄이고,시스템의 성능과 가용성을 높이는 기술 - 서버 간 트래픽을 고르게 분배하여특정 서버에 부하가 집중되는 것을 방지 - 종류: 클라이언트 사이드 로드 밸런싱, 서버 사이드 로드 밸런싱 클라이언트 사이드 로드 밸런싱이란? - 클라이언트가 직접 여러 서버 중 하나를선택하여 요청을 보내는 방식 - 클라이언트는 서버의 목록을 가지고 있으며,이를 바탕으로 로드 밸런싱을 수행 FeignClient란?- FeignClient는 Spring Cloud에서 제공하는 HTTP 클라이언트로,선언적으로 RESTful 웹 서비스를 호출할 수 있음 - Eureka와 같은 서비스 디스커버리와 연동하여동적으로 서비스 인스턴스를 조회하고 로드밸런싱을 수행 F..

Eureka 서비스 디스커버리
서비스 디스커버리란?- 서비스 디스커버리는 마이크로서비스 아키텍처에서각 서비스의 위치를 동적으로 관리하고 찾아주는 기능 - 각 서비스는 등록 서버에 자신의 위치를 등록하고,다른 서비스는 이를 조회하여 통신 - 주요 기능: 서비스 등록, 조회, 헬스 체크 Eureka란?- 넷플릭스가 개발한 서비스 디스커버리 서버로,마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리 - 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소 역할을 하며,서비스 인스턴스의 상태를 주기적으로 확인하여 가용성 보장 - 여러 인스턴스를 지원하여 고가용성을 유지할 수 있음 Eureka 서버 설정server.port=19090# 다른 Eureka 서버에 이 서버를 등록하지 않음eureka.client.register-with-..

대규모 시스템 - TPS(Transaction Per Second)
TPS(Transactions Per Second) - 초당 처리되는 트랜잭션의 수를 나타내는 지표- 시스템의 성능을 평가하는 중요한 지표 중 하나- 시스템이 얼마나 많은 요청을 동시에 처리할 수 있는지를 나타내며,시스템의 처리 능력을 가늠할 수 있게 해 줌 시스템이 초당 요청량을 견딜 수 있어야 함 - 일간 접속량이 아닌, 특정 시간대에초당 접속자 요청량이 가장 많은 시간을 파악해야 함 예상치 못한 이벤트로 인해 설계 예상 이상의 요청이 몰려 시스템이 중단되는 걸 대비하는 법 - 애플리케이션의 수 늘리기- 대기열을 설정- 자동 스케일링을 통해 시스템의 자원을동적으로 할당하여 부하를 분산시킴

파라곤 NTFS for MAC sonoma 소노마 호환 업데이트 하는 법
안녕하세요!저번에 NTFS for Mac 설치 방법을포스팅했었는데요https://hailey-it.tistory.com/4 맥북에서 NTFS 외장하드 사용하기 파라곤 Paragon Microsoft NTFS for Mac 설치 및 사용 방법안녕하세요 오늘은 맥북에서 NTFS 포맷의 외장하드를 읽고 쓰기가 가능하게 해주는 paragon 파라곤 Microsoft NTFS for Mac 설치 및 사용방법에 대한 포스팅을 준비해왔어요 디스크 포맷 NTFS: 윈도우에서hailey-it.tistory.com 2022년 버전 파라곤 NTFS for MAC을잘 사용하고 있다가이번에 소노마 업데이트를 했더니갑자기 외장하드 인식이 안되더라고요..? 저는 WD 외장하드를 사용하고 있는데아래 사이트에 들어가서 확인해 보니 h..