목록전체 (129)
지나공 : 지식을 나누는 공간
서론우리 회사 프로젝트는 MSA 구조를 이루고 있는데 그동안 나는 다른 MS를 호출할 업무가 없었어서 직접 써본 적은 없었다. 근데 이번에 FeignClient로 다른 MS의 API를 호출할 일이 생겨서, 외부 API를 호출하는 여러가지 통신 방법들과 간단하게 비교하려고 한다. 이번 포스팅은 스윽 훑어보는 거라 아직 제대로 흡수하지 못한 특징들도 있는데, 앞으로 구체적인 사용법을 공부할 예정이다. Spring CloudMSA의 개발, 배포, 운영에 필요한 아키텍처를 쉽게 구성할 수 있도록 지원하는 Spring Boot 기반의 프레임워크.MSA를 위한 환경설정, 서비스 검색, 라우팅, 프록시 등 분산시스템 설정을 빠르게 할 수 있도록 도와준다. 여기서 지원하는 요소들은 대표적으로 아래와 같은데 이번 포..
토비의 스프링을 읽고 정리했다. 티스토리가 사라져버린 그 날에 노션에 정리했던 걸 옮겨본다.https://selective-bathtub-e65.notion.site/f72b75db1b8945e089d00b01c9bb5ada 목차 목차만 보고 절차를 대충 상기할 수 있으므로 목차는 매우 중요하다...ㅎㅎ 1.1 초난감 DAODAO : 데이터를 조회하거나 조작하는 기능을 전담하는 오브젝트 책에서 초반에 DAO를 하나 만들었다. 데이터를 추가하는 add 메소드 안에는 세 가지 관심사항이 같이 들어있다.DB Connection을 가져오는 부분실제 SQL Statement를 만들고 실행하는 부분작업을 마친 뒤 Statement와 Connection 오브게트를 닫는 부분→ 왜 초난감 DAO인걸까? 문제점이 뭔..
아직 글또 7기 2회의 제출 회차가 남았지만 이른 회고를 해 보자! 글또 : 글쓰는 또라이가 세상을 바꾼다 글쓰는 개발자 모임 글을 작성하는 개발 직군 사람들이 모여서 좋은 영향을 주고 서로 같이 자랄 수 있는 커뮤니티로, 2주에 한번씩 본인의 블로그에 글을 쓰면 된다. 글 주제는 생각을 정리하는 회고가 될 수도 있고, 컨퍼런스 내용이나 책 내용을 요약하는 것도 가능하며, 트러블 슈팅 등 일반적으로 개발 블로그에서 쓰이는 주제들을 자유롭게 골라서 작성하면 된다. 글또를 알게 된 경로 11번가 신입 개발자 교육 때 NEXTSTEP의 슬랙에 가입하게 됐는데, NEXTSTEP이 우테코도 운영하고 타사 신입 교육도 많이 진행하다 보니 그 채널에 정말 많은 개발자가 모여 있다. 거기서 누군가가 글또 지원 링크를 ..
기존에 작성했던 글이지만 내용을 좀 더 보충해서 재발행한다. 우아콘2021 도메인원정대, DDD-start 책의 내용을 참고했다. 이번에 알아볼 것은, DDD란? Domain이란? Domain Layer? Domain Model? 도메인 모델링 해보기! + Aggregate 개념 이해 + Aggregate Root 큰 애그리거트와 작은 애그리거트 영속성 전이 속성 CasecadeType 과 DDD 속 Aggregate DDD(Domain Driven Design)란? 도메인 중심으로 설계하는 디자인 방법론 Domain이란? 소프트웨어로 해결하고자 하는 문제 영역. 애플리케이션 내 로직들이 관여하는 정보와 활동의 영역 쿠팡이나 11번가와 같은 오픈마켓을 구현하려면 아래 기능이 필요하다. 회원가입, 회원탈퇴..
git pull을 어떻게 할지 전략이 세가지가 있으니 선택해서 명시해달라는 내용이다. 타 블로그 왈 git 2.27부터 추가된 기능이라고 한다. 기존 git pull의 문제점 : 세 가지 전략으로 나뉘게 된 배경 git pull --help에서는 아래처럼 설명한다. In its default mode, git pull is shorthand for git fetch followed by git merge FETCH_HEAD. 번역하자면, 디폴트모드에서는 git pull이 git fetch, 즉 git merge FETCH_HEAD의 작업에 대한 간단명령어(속기)라는 말이다. 다시 말해 git pull의 내부 동작이 git merge FETCH_HEAD처럼 동작한다는 말이다. 따라서 이 디폴트모드에서는 g..
지난 신입 과제 때 webclient로 기상청 API를 호출하는 과정에서 아래와 같은 에러를 마주한 적이 있다. (해결법을 보고 싶은 분은 이 포스팅 맨 아래쪽으로 내리세욤) HTTP 헤더에 대한 기본 지식이 없었다. 그래서 지금 보니 진짜 엉망진창의 요청헤더였네?!?! 어디로 숨을가... 이 사진을 그대로 여쭤봤다니....어휴어휴.. 아무튼 과거의 쪽팔림은 뒤로 하고,(ㅋㅋ) HTTP 헤더 기본 내용도 공부했으니, 이제 이 내용을 적용해서 위에서 뭐가 잘못됐었는지 아래에서 살펴볼 예정이다. Header 기본 뭐가 잘못됐는지 보기에 앞서, 필요한 기본 개념부터 정리하잣. Header의 용도 HTTP 전송에 필요한 모든 부가 정보. 메시지 바디의 내용, 크기, 압축은 뭘로 했는지, 인증에 대해서, 캐시 관..
지난번엔 웹서버와 WAS를 간단히 알아보고, Nginx도 간단히 알아봤다. 오늘은 그것들이 등장한 배경과 구조를 알아본다. 우아한Tech 채널에서 너무 잘 정리해 주셔서 nginx.conf 파일과 같이 글로 정리해 봤다. Nginx와 Apache의 등장배경 1995년 Apache 아파치는 본래 정적 컨텐츠만 처리하는 웹서버이다. 초기 구조를 보면 클라이언트로부터 요청이 들어올 때마다 process를 할당한다. 근데 process를 매번 만들기는 부담이 있으니 prefork 방식을 사용하는데, 미리 process들을 만들어두고 새 요청이 들어올 때마다 꺼내서 할당하는 것이다. 그리고 만들어뒀던 프로세스가 모두 할당되면 추가로 프로세스를 만든다. 장점 : - 개발하기가 쉽다. - 새 모듈마다 새 프로세스를 ..
들어가는 글 웹사이트가 서비스되려면 브라우저가 읽을 수 있는 파일들, HTML이나 CSS, js, 이미지와 같은 여러 데이터가 필요하다. 이런 걸 서버의 특정 폴더, 디렉토리에 넣어두고 이 폴더를 외부에서 접근 가능하도록 개방해둔 뒤, 서버에 지정된 웹사이트 주소로 접속하면 해당 데이터들을 받아갈 수 있게 하는 것이 웹 서버의 기본 역할이다. 이번에는 다소 지루할 수도 있지만(?) 웹 서버와 WAS의 딱딱한 정의를 먼저 보고, 다음 글에서는 등장 히스토리를 함께 정리할 예정이다! Web Server 클라이언트가 어떤 페이지를 요청하면 그 요청을 받아서 정적 컨텐츠를 제공하는 서버인데, 만약 동적 컨텐츠에 대해 요청을 받는다면 WAS에게 해당 요청을 넘겨준 뒤 WAS에서 처리한 결과를 클라이언트에게 전달한..
보호되어 있는 글입니다.
요즘 동기들이랑 매주 모던 자바 인 액션의 챕터를 읽고 궁금한 내용을 대화로 풀어가는 시간을 가지고 있다. 이번엔 스트림에 대해 읽었는데 읽으면서 우리가 되게 헷갈려서 궁금해했던 질문이 있었다. 흥미로운 것 같아 기록하려고 한다. 보고 잘못된 부분 있으면 답글 달아주세요~!!! 의문들 모든 요소가 만족되는 filter를 만들어놨을 때. stream에 findAny를 하면 filter건 조건에 만족하는 것들 중에 반드시 맨 첫 번째 요소가 나오고, parallelStream에 findAny를 하면 첫째 요소가 아닐 수도 있겠네!? 확인해보고 싶다! stream과 parallelStream에 각각 findFirst를 하면 어떨까? 1의 결과로 보아 parallelStream은 과연 진짜로 first인 값을 ..