본문 바로가기
반응형

분류 전체보기1062

깃허브 - 개인 토큰 발급 받기 (Personal access tokens) 깃허브 데스크탑으로 프로젝트 관리하기 강의 오픈!! (인프런 바로가기) Git / GitHub 전체 링크 참고- RESTful API로 파일 읽기- fetch / pull 할 때 ID, Password 자동 입력하기 토큰을 발급받으면 깃허브의 RESTful API나 CLI 사용시 비밀번호를 대체할 수 있다. 깃허브 웹사이트에서 Settings로 이동한다. 왼쪽 하단의 Developer settings를 클릭한다. [Personal access tokens] → [Tokens (classic)] → Generate new token에서 classic을 클릭한다. 토큰에 대한 정보를 입력하고 만기일을 설정한다. 만기일은 무제한을 설정할 수 있지만, 보안에 유의해야 한다.토큰 권한에 대한 필요한 scopes를.. 2024. 3. 1.
C++ - 브리지 패턴 (Bridge Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - 클래스 다이어그램 그리기 브리지 패턴 (Bridge Pattern) - 구조 패턴 - 클래스의 집합을 두 개의 추상화와 구현으로 분리하는 패턴 - 인터페이스와 구현을 별도의 클래스로 분리하여 각각 독립적으로 변경할 수 있다. 구현 - Abstraction : 기능적 요구사항을 정의하는 인터페이스를 제공한다. - Implementation : Abstraction이 정의한 인터페이스를 실제로 구현한다. - RefinedAbstraction : Abstraction을 확장한 클래스, 추가적인 기능을 정의한다. - ConcreteImplementation : Implementation의 실제 구현이 된다. 장점 -.. 2024. 3. 1.
C++ - 방문자, 비지터 패턴 (Visitor Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - 복합체, 컴포지트 패턴 - 클래스 다이어그램 그리기 방문자, 비지터 패턴 (Visitor Pattern) - 행동 패턴 - 객체의 구조와 동작을 분리하여 새로운 동작을 추가하는 패턴 - 어떤 클래스에 대해 특정 메서드를 분리하고 싶을 때 사용할 수 있다. 구현 - Visitor : 새로운 동작을 정의하는 인터페이스, 특정 작업을 수행하는 메서드가 정의된다. - Element : Visitor를 수용하는 인터페이스, accept 메서드로 Visitor를 받는다. - ConcreteVisitor : 실제로 새로운 동작을 구현한다. - ConcreteElement : Visitor가 새로운 동작을 수행하는 실제 객.. 2024. 2. 29.
C++ - 프로토타입 패턴 (Prototype Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - 클래스 다이어그램 그리기 - 복사 생성자를 이용한 객체의 깊은 복사 프로토타입 패턴 (Prototype Pattern) - 생성 패턴 - 초기 객체 생성 비용이 많이 드는 경우 사용하는 패턴 - 객체를 생성할 때 기존 객체의 복사를 통해 생성한다. - 생성할 객체의 유형에 대한 세부 정보를 숨기면서 복잡한 객체를 만들 수 있는 방법을 제공한다. 구현 - Prototype : 복제될 객체의 인터페이스를 정의, 객체를 복사하는 메서드를 제공한다. - ConcretePrototype : 복사될 때 생성될 새로운 객체의 초기 상태를 가지게 된다. - 클라이언트는 Concrete Class의 구체적인 내용을 몰라도 객.. 2024. 2. 29.
C++ - 역할 사슬, CoR 패턴 (Chain of Responsibility Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - 클래스 다이어그램 그리기 역할 사슬, CoR 패턴 (Chain of Responsibility Pattern) - 행동 패턴 - 요청을 보내는 객체와 요청을 처리할 수 있는 여러 객체 사이에 역할 사슬을 구성하는 패턴 - 요청을 처리하는 여러 개의 객체가 있는 경우, 요청을 처리할 객체를 결정할 수 있다. 구현 - Handler : 요청을 처리할 인터페이스와 다음 요청을 처리할 successor 참조를 제공한다. - ConcreteHandler : 실제로 요청을 처리하고, 처리하지 못하는 경우 successor에게 요청을 전달한다. - 클라이언트는 요청을 최초의 핸들러에게 전달한다. 장점 - SRP(단일 책임.. 2024. 2. 29.
C++ 디자인 패턴 C, C++ 전체 링크 Architecture & Design Pattern 전체 링크  패턴 (Pattern)- 특정한 문제를 해결하기 위해 반복적으로 발생하는 문제와 그에 대한 해결책을 포괄하는 설계 또는 구조- 아키텍처 패턴보다 더 구체적인 문제를 해결하고, 클래스와 객체 간의 관계를 정의 컨텍스트 (Context)- 패턴이 적용되는 특정한 상황이나 환경 문제 (Problem)- 패턴이 적용되는 상황에서 발생하는 구체적인 어려움이나 요구사항 안티 패턴 (Anti-pattern)- SW 개발 과정에서 자주 발생하는 비효율적이거나 잘못된 걸계, 개발 또는 관리 관행생성 패턴 (Creational Patterns)- 객체 생성 메커니즘에 관련된 패턴- 객체 생성을 추상화하고, 시스템이 어떻게 객체를 생성.. 2024. 2. 28.
리액트 - crypto-js로 문자열 암호화/복호화하기 (Encrypting/Decrypting String) 리액트 전체 링크 아래 결과는 링크에서 확인할 수 있다. AES (Advanced Encryption Standard) - 대칭키 암호화 알고리즘으로, 동일한 키를 사용하여 데이터를 암호화하고 복호화한다. SHA256 (Secure Hash Algorithm 256-bit) - 단방향 해시 알고리즘으로, 임의의 데이터를 고정된 길이의 해시 값으로 변환한다. - 한 번 해싱된 데이터는 원본 데이터로 복원할 수 없다. crypto-js crypto-js를 이용하면 위에서 설명한 AES와 SHA256을 간단히 사용할 수 있다. 먼저 AES를 사용하기 위해 적절히 키를 만들자. const SECRET_KEY = "YOUR_SECRET_KEY"; 사용 예시는 다음과 같다. import CryptoJS from ".. 2024. 2. 28.
C++ - 프록시 패턴 (Proxy Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - 클래스 다이어그램 그리기 - 변수 변경시 이벤트 발생 (C#) 프록시 패턴 (Proxy Pattern) - 구조 패턴 - 다른 객체에 대한 접근을 제어하거나 중재하는 역할을 하는 대리자(Proxy)를 제공하는 패턴 - 원본 객체에 대한 접근을 제어, 보안 검사, 로깅, 캐싱, 지연 로딩 등의 추가 기능을 제공할 수 있다. 구현 - Subject : 프록시와 실제 서비스에 대한 공통 인터페이스를 제공, 프록시를 실제 서비스와 동일하게 처리 - Real Subject : 프록시가 접근을 제어하거나 기능을 추가하는 대상, 실제 서비스 객체 - Proxy : 요청을 중개하고 제어하는 객체, 클라이언트는 프록시를 통해.. 2024. 2. 28.
C++ - 템플릿 메서드 패턴 (Template Method Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - 클래스 다이어그램 그리기 - virtual 키워드 - 헐리우드 원칙 템플릿 메서드 패턴 (Template Method Pattern) - 행동 패턴 - 알고리즘의 구조를 정의하는 패턴 - 알고리즘 구조는 유지하면서 알고리즘의 일부 단계를 서브클래스에서 구현할 수 있다. 구현 - Template Method : 알고리즘의 구조를 정의한 메서드, final 등으로 재정의가 불가능하도록 정의 - Abstract Method : Template Method에서 정의한 구조의 일부 단계를 구체화하기 위해 하위 클래스에서 구현 - Hook : 하위 클래스에서 선택적으로 오버라이드 할 수 있도록 제공되는 메서드 장점 - .. 2024. 2. 26.
반응형