본문 바로가기

개인공부121

헥사고날 + 멀티모듈 학습 (모듈간 의존성 약화) 시작하기에 앞서.. 멀티모듈은 무엇인지, 왜 써야 하는지에 대한 설명 및 환경을 구성하는 방법에 대해서는 아래 링크에 기재되었습니다 https://www.notion.so/5a7fbe5ab3554de7a40bd711604f1af5?pvs=4 헥사고날에 개념에 대한 설명은 아래 링크를 봐주시면 되겠습니다 https://www.notion.so/7611bad39bad4c3b9c5259ef989a2031?pvs=4 하단에는 멀티모듈 환경에서 서브 프로젝트간 의존성을 헥사고날의 특징인 의존성 역전법칙을 차용하여 낮춘 방식을 구현한 내용을 정리해두었습니다. 멀티모듈 + 헥사고날 방식 (의존성 약화) 프로젝트 생성 아래와 같이 멀티모듈 환경 세팅 Member ㄴ Modules ㄴ MemberDomain Post ㄴ.. 2024. 2. 4.
MongoDB란? 노션에 따로 정리둔인 것들을 미리 옮겨놓았습니다 MongoDB란? NoSQL DB이다. key-value와 다르게 범용적으로 사용 가능 스키마를 고정하지 않는 형태 데이터를 구조화해서 json형태(key-value화)로 저장 join이 불가능하기 때문에 join이 필요없도록 데이터 설계 필요 특징 메모리맵 형태의 파일엔진 DB → 메모리 크기가 성능을 좌우 쌓아놓고 삭제가 없는 경우가 적함(트랜잭션이 필요한 경우는 부적합) 도큐먼트 데이터 모델 NoSQL이란? Not Only SQL의 준말이며, SQL을 사용하는 관계형 DB가 아닌 DB를 의미함 RDBMS vs NoSQL MongoDB를 왜 써야하나? 인터넷 서비스가 점점 많은 곳에 보급되고 데이터를 전송하는 device의 수가 증가하게 되면서, 전통적.. 2023. 12. 7.
VPN VPC 개념 VPN(Virtual Private Network) 이란? - VPN은 가상사설망을 의미 (private 통신을 제공) - 회사 혹은 집단이 사용하기 위해 인터넷망을 안전하게 연결하고자, 가상의 터널을 만들고 암호화된 데이터를 전송할 수 있도록 구성된 네트워크. 암호화가 되어있어 보안성이 좋음 - 멀리 떨어진 네트워크 환경을 하나의 안전한 네트워크로 만드는 역할을 함 예시) 회사 내부 네트워크에서만 접속 가능한 서버를 집에서 접속하기 위해서 VPN을 이용하여 마치 회사 내부 네트워크에 있는 것처럼 만듦 1. A컴퓨터(ip주소 : 210.x.x.x)가 B네트워크(=VPN서버 / 168.x.x.x)의 VPN에 접속한다고 가정 2. 이 경우, A컴퓨터는 더이상 210.x.x.x의 ip가 아닌 168.x.x.x.. 2023. 11. 29.
Oauth2 Oauth2를 해보기 위해, 자료를 정리 중에 있습니다. - Oauth는 인가를 위한 기술 - 인증은 유저가 직접, 권한은 서비스에게 Oauth를 하기위해 선제적으로 해야할 것들 1. Oauth를 제공해주는 서비스의 API에 본인이 만들려고 하는 서비스를 등록해야함 2. 서비스에 필요하다 생각되는 권한들을 체크 Oauth 흐름 - User-Agent Resource Owner가 인증을 수행하기 위한 매개체 예시) 크롬 웹 브라우저 2023. 10. 16.
Redis 개념 및 사용법 그동안 생각만하고 직접 써보지는 않았던 DB인 redis, 새로운 기술에 대한 막연한 두려움때문에 그동안 쓰지 않았던 것 같다. 러닝커브에 대한 두려움이 늘 있어서 그랬던 것 같다. 헌데 회사일을 하면서 DB응답속도를 개선시키고 싶은 부분이 계속 생겨서 언젠간 꼭 배워야겠다고 마음을 먹었다. 주말인 오늘, 개념을 다시 훑어보고 직접 사용해본 경험을 아래에 적어두려고 한다. Redis란 무엇일까요~? 빅천재맨들이 만든 갓구글에 검색하면 바로 아래와 같이 요약된 내용이 나온다 Redis는 REmote DIctionary Server의 약어입니다. Redis는 속도가 빠르고 사용이 간편하여 최고의 성능이 필요한 웹, 모바일, 게임, 광고 기술 및 IoT 애플리케이션에서 널리 사용되고 있습니다. 조금 더 자세히.. 2023. 6. 3.
자동 build Tool별 특징 및 장단점 상세내용 요약 Jenkins: 큰 규모의 프로젝트이거나 복잡한 CI/CD 요구사항이 있는 경우. Travis CI: GitHub 저장소와 간단하게 통합하고자 하는 경우. CircleCI: 다양한 프로젝트 유형과 언어를 지원하며, 빠르게 시작하고자 하는 경우. GitLab CI/CD: GitLab과의 통합을 강조하고자 하며, 코드 호스팅 및 CI/CD를 한 플랫폼에서 관리하고자 하는 경우. GitHub Actions: GitHub 저장소와 강력한 통합을 원하며, 다양한 플랫폼과 언어를 지원하며 유연한 워크플로우를 구성하고자 하는 경우. ⇒ 추후 진행할 프로젝트를 고려했을 때, Jenkins를 선택해야할 이유가 더 많은 것으로 생각됨. Jenkins학습이 필요한 시점에 학습진행해야겠다. 상세내용 Jenkin.. 2023. 5. 20.