분류 전체보기 23

Spring Security 강의 필기 노트 (1)

Spring Security기본설정모듈 추가와 동시에 기본 보안이 설정됨Any Request에 대해 Authenticated가 설정됨로그인을위해 formLogin과 HTTP BASIC 방식을 제공함자동으로 계정이 생성됨문제점하지만, 실제 서비스 운영이 불가능함계정 생성 기능이 없음실제 요구되는 권한 조건을 만족하지 못함 (권한 세분화 )HttpSecurity역할보안에 필요한 각 설정 클래스와 필터들을 생성하고 최종적으로 SecurityFilterChain 빈 생성구성HttpSecurityConfigurationHttpSecurity를 생성하는 클래스SpringBootWebSecurityConfigurationSpring Security와 Spring Boot를 통합하여 웹 애플리케이션의 보안 구성을 간편..

카테고리 없음 2024.06.23

만들면서 배우는 클린아키텍처를 읽고(4/4)

08. 경계간 매핑하기 매핑하지 않기 전략 서로 다른 레이어에서 같은 모델을 사용하여 개발 공통 모델에서 각 레이어별 다른 요구사항을 개발해야됨 모든 계층의 구조가 같을 경우 해당 전략을 추천 양방향 매핑하기 전략 계층 별로 다른 모델을 사용하여 개발 다른 계층의 요구사항을 개발하지 않아도 됨 너무 많은 보일러플레이트 코드가 생김 도메인 모델이 통신하는데 사용됨 (다른 레이어의 요구에 따른 변경에 취약해짐) 완전 매핑 전략 각 연산마다 별도의 모델을 사용 더 많은 코드가 필요함 구현하고 유지보수하기 쉬움 단방향 매핑하기 전략 공통 인터페이스를 개발한 후, 각 레이어에서 구현체를 구현 계층간의 모델이 비슷할 때 유용 언제 어떤 매핑 전략을 사용할 것인가? 그때그때 다르다. 한 전략을 전체 코드에 적용할 필..

카테고리 없음 2024.03.14

만들면서 배우는 클린아키텍처를 읽고(3/4)

만들면서 배우는 클린아키텍처를 읽고(1/4) (tistory.com) 만들면서 배우는 클린아키텍처를 읽고 (2/4) (tistory.com) 4장 유스케이스 구현하기 도메인 모델 구현하기 Account 도메인의 컨셉 ActivityWindow에 Activity 목록을 가지고있으며, Activity 목록을 계산하여 balance를 계산 최적화를 위해 특정 기간내의 Activity만 불러오며, 그 이전의 값은 baselineBalance로 미리 계산 유스케이스 둘러보기 유스케이스는 도메인 로직만 있어야함. 즉, 입력 유효성 검증은 이미 되었다고 가정 그러나, 비즈니스 규칙의 검증은 해야됨 입력 유효성 검증 유스케이스의 입력 모델을 이용해서 입력 유효성 검증을 진행 Bean Validation API를 이용하..

카테고리 없음 2024.03.10

만들면서 배우는 클린아키텍처를 읽고 (2/4)

만들면서 배우는 클린아키텍처를 읽고(1/4) (tistory.com) 2장. 의존성 역전하기 2.1. 단일책임원칙 SRP(Single Responsibility Principle) 컴포넌트를 변경하는 이유는 오직 하나뿐이어야한다. 장점 응집력 향상 (Enhanced Cohesion) 결합도 감소 (Reduced Coupling) 유지보수성 향상 테스트 용이 하지만, 실세계의 소프트웨어에서 컴포넌트 의존성은 매우 복잡하기때문에, 변경하는 이유는 쉽게 전파됨 시간이 흐를수록 변경하는 이유들이 많아 지며, 많이 쌓인 후 컴포넌트를 변경하는건 다른 컴포넌트의 실패로 이루어짐 결론 복잡한 아키텍처에서는 컴포넌트 간 의존성 때문에 변경할 이유가 쉽게 전이되기때문에, 클린 아키텍처를 지향하는게 좋다(?) 2.2. 부..

카테고리 없음 2024.03.10

만들면서 배우는 클린아키텍처를 읽고(1/4)

클린아키텍처의 지향점 변화하는 요구사항과 외부 요인에 빠르게 적응할 수 있게 하는것 계층형 아키텍처 자체가 문제가 아니라, 개발자들이 나쁜 습관으로 코드를 짜기 쉬운 환경임 데이터베이스 주도 설계를 유도한다. 애플리케이션의 목적은 사용자가 필요한 비즈니스 로직을 만들어서 편리하게 활용함이 목적 상태(State)가 아닌 행동 (Behavior)이 중심이 되어야됨 의존성이 가장 안쪽에있는 데이터베이스 중심으로 설계가 진행됨 지름길을 택하기 쉬워진다 컴포넌트의 계층을 이동시켜 개발을 쉽게 하려는 유혹에 빠지기 쉬움 테스트하기 어려워진다. 계층형 아키텍처는 계층을 뛰어넘는 유혹에 빠지기 쉬업 (ex. 웹 ⇒ 영속성 바로 접근) 도메인 로직이 웹 계층에 구현될 가능성이 커짐 웹 계층 테스트에서 영속성 계층도 mo..

카테고리 없음 2024.02.11

ChatGPT Completions API의 매개변수 정리

OpenAI의 API는 GPT-3 기반 인공지능 서비스로 대화형 챗봇부터 자동 작성까지 다양한 분야에서 활용이 가능합니다. 이러한 서비스를 활용하려면 Completion.create 함수를 사용하여 적절한 매개변수를 설정해야 합니다. 이 기능의 매개변수에는 텍스트 프롬프트, 생성할 자동 완성 수, 최대 토큰 수 및 창의성 제어 값이 포함됩니다. 이러한 매개변수를 조정하여 생성하려는 자동 완성의 종류를 미세 조정할 수 있습니다. 이 기사에서는 Completion.create 함수의 매개변수에 대해 자세히 설명하고 이를 사용하는 방법을 알아봅니다. 파라미터 타입 필수여부 기본값 설명 model string Required - 사용할 모델의 ID값 prompt string 또는 array Optional 자동..

카테고리 없음 2023.04.03

오픈 소스 개발자가 꼭 알아야 할 GPL 3.0 라이선스의 주요 사항

GPL 3.0은 자유 소프트웨어 재단(FSF)에서 발표한 오픈 소스 라이선스입니다. 이 라이선스는 소프트웨어의 사용, 복제, 배포, 수정 등을 규제합니다. 라이선스가 GPL 3.0인 소프트웨어를 수정하고 배포하는 경우, GPL 3.0 라이선스의 규정에 따라 해당 소스 코드를 반드시 공개해야 합니다. 또한, GPL 3.0으로 라이선스가 적용된 소프트웨어를 사용하는 경우, 해당 소프트웨어를 사용하는 라이선스와 동일한 GPL 3.0 라이선스가 적용되어야 합니다. 상업적인 목적으로 GPL 3.0 라이선스가 적용된 소프트웨어를 사용하는 경우, 이에 대한 라이선스 요구사항을 준수해야 합니다. GPL 3.0 라이선스는 라이선스가 적용된 소프트웨어의 저작자의 권리와 책임을 보호하며, 사용자는 GPL 3.0 라이선스가 ..

카테고리 없음 2023.04.02

JavaScript 패키지 매니저: npm vs. yarn vs. pnpm

1. 패키지 매니저 npm, yarn, pnpm 모두 JavaScript 패키지 매니저입니다. 이들은 개발자들이 자바스크립트 라이브러리 및 프레임워크를 설치하고 관리하기 쉽도록 도와줍니다. npm은 Node.js의 공식 패키지 매니저이며, 자바스크립트 프로그램에서 사용되는 모든 종류의 패키지를 다운로드하고 설치할 수 있습니다. npm은 쉽게 사용 가능한 CLI(Command Line Interface)를 제공하며, Node.js와 함께 자동으로 설치됩니다. yarn은 Facebook에서 만든 npm의 대안입니다. yarn은 npm보다 빠르고 안정적인 설치 및 의존성 관리를 제공합니다. 또한 yarn.lock 파일을 사용하여 프로젝트에서 사용되는 의존성 버전을 명시적으로 지정할 수 있으므로, 의존성 버전 ..

카테고리 없음 2023.03.25

프론트엔드 개발자가 반드시 알아야 할 쿠키(Cookie)의 모든 것

💡이 글에서 소개하는 내용 1. 쿠키의 개요 2. 쿠키의 속성 3. 쿠키의 활용 예시 4. 쿠키와 세션의 차이 1. 쿠키의 개요 쿠키는 웹 브라우저가 웹 사이트로부터 전송받은 작은 데이터 조각으로, 일정 기간 동안 유효하며, 동일한 도메인과 서브도메인 간에 공유됩니다. 쿠키는 일반적으로 웹 서버에서 생성되며, 이름, 값, 도메인, 경로, 만료일, 보안 등의 속성이 있습니다. 2. 쿠키의 속성 쿠키는 이름, 값, 도메인, 경로, 만료일, 보안 등의 속성이 있습니다. 쿠키는 브라우저가 서버로 요청을 보낼 때마다 서버로 전송됩니다. 쿠키는 브라우저마다 저장되며, 사용자가 다른 브라우저를 사용하거나, 쿠키를 삭제하면 쿠키 데이터도 삭제됩니다. 쿠키는 동일한 도메인과 서브도메인 간에 공유됩니다. 따라서, 웹 사이..

카테고리 없음 2023.03.25

웹 서버의 비밀: 동시에 여러 사용자 요청을 어떻게 처리할까?

요즘 인터넷은 우리의 일상생활에 깊숙이 녹아있습니다. 웹 브라우저를 통해 웹 사이트에 접속하면 다양한 정보와 서비스를 이용할 수 있는데, 이 모든 과정이 원활하게 진행되려면 웹 서버가 뒷받침을 해야 합니다. 이 글에서는 웹 서버가 무엇인지와 어떻게 여러 사용자의 요청을 동시에 처리할 수 있는지 알아보겠습니다. 웹 서버란? 웹 서버는 인터넷을 통해 웹 브라우저와 같은 클라이언트가 요청하는 HTML 문서, 이미지, 스타일시트, 자바스크립트 파일 등의 정적 및 동적 리소스를 제공하는 서버입니다. 웹 서버는 HTTP 프로토콜을 사용해 클라이언트와 통신하며, 요청에 따라 적절한 응답을 반환합니다. 웹 서버의 동시 요청 처리 비결 웹 서버가 여러 사용자의 요청을 처리할 수 있는 이유는 다음과 같은 기술 및 메커니즘..

카테고리 없음 2023.03.19
반응형