본문 바로가기

분류 전체보기985

c++ split split 함수를 만들어본다. 다음과 같은 상황을 고려해야 한다. 1. 함수는 입력 문자열과 구분자를 매개변수로 받아야 합니다. 구분자는 문자열을 분리할 때 사용될 문자 또는 문자열입니다. vector split(string input, string delimiter) 2. 함수는 vector 을 반환해야 합니다. 각 분리된 문자열은 벡터의 요소로 저장되어야 합니다. vector split(string input, string delimiter){ vector ret; return ret; } 3. 입력 문자열을 구분자를 기준으로 분리해야 합니다. 문자열을 구분할 때 구분자가 나타나는 위치를 찾는 방법이 필요합니다. 문자열에서 구분자를 찾는 방법으로는 일치하는 문자열 또는 일치하는 문자열의 위치를 찾는 .. 2023. 6. 23.
순열 순서가 필요한 경우 다음 참고하여 빠르게 구현하도록 한다. next_permutation 함수: C++ 표준 라이브러리의 헤더에 있는 next_permutation 함수는 순열(Permutation)을 생성하기 위해 사용됩니다. next_permutation 함수는 현재 순열을 기준으로 다음 순열을 생성하고, 순열이 더 이상 존재하지 않을 때는 false를 반환합니다. int main() { int a[] = {1,2,3}; do{ for(int i : a) cout 2023. 6. 23.
Recursion #Recursion 재귀함수는 자신을 재참조하는 함수를 일컫는다. 예를 들면 Top - Bottom으로 진행되는 경우 이를 split 할 때 사용하기도 한다. 재귀함수에는 반드시 종료조건(기저사례)를 작성해야 한다. 그렇지 않으면 무한 루프가 발생한다. 또한 재귀함수는 사이클이 발생하는 경우에는 사용하면 안 된다. 이 경우도 동일한 이유다. 매개변수의 상태를 변경시켜 기저사례까지 도달하여 문제를 해결하는 경우 보통 사용한다. # DP DP 문제를 푸는 경우 함수의 참조가 적은 경우 재귀 함수로 문제를 해결하는 것이 더 효율적일 수 있다. 이러한 경우가 아니라면 반복문을 사용하는 것이 더 효율적이다. #예시 1. 팩토리얼 팩토리얼 n! 의미는 그 이전의 항을 모두 곱하는 것이다. int factorial(.. 2023. 6. 23.
STL Standard Template Library, 자료구조, 함수, 알고리즘과 같은 함수를 포함한 라이브러리이다. 알고리즘에서는 정렬, 탐색과 같은 함수로 이루어져 있다. C++에서 컨테이너는 사전에 정의된 자료구조를 이야기 한다. Sequence Container : 데이터를 단순히 저장해 놓는 자료구조를 뜻한다. array, vector, deque, forward_list, list ,, associative container : 자료가 저장되면서 자동으로 정렬되는 자료구조를 말합니다. unordered associative container : 자동정렬이 되지 않는 자료구조. container adapter : 시퀀스 컨테이너를 이용해 만든 자료구조를 뜻한다. 기본적으로 어느정도의 자료구조는 지원해.. 2023. 6. 23.
OAuth 2.0 동작방식, 개발환경 구성, 클라이언트 등록, 프론트 개발 개발환경 OAuth 2.0 Naver, Google, Facebook OAuth2.0 연동 docker Spring Security 3.1 Spring Data JPA JDK 17 Spring boot 3.1 MySQL OIDC thymeleaf 테스트 개발환경 JUnit5 H2 DB 목표 1. JDK 17의 도입된 새로운 문법 및 API를 활용한다. 2. OAuth 2.0의 개념 및 플로우를 학습한다. 3. Spring Security의 사용법이 변경됨으로 인해 이를 익히고 적용한다. 4. dockerFile을 개발환경 실습환경으로 구분해 작성하고 docker-compose를 통해 배포한다. 5. Spring boot 3.1 도입으로 인해 변경사항 및 릴리즈 내용을 학습한다. 6. SSR의 타임리프를 .. 2023. 6. 21.
개인정보처리방침, 이용약관 홈페이지에 회원가입 기능이 존재하는 경우 개인정보처리방침과 이용약관이 필요하다. 대표적으로 네이버 사이트 footer에는 다음과 같이 링크가 존재한다. 이러한 문서양식은 어떻게 구해야하는지 궁금해서 다음과 같이 찾아보았다. 먼저 이용약관은 다음과 같다. https://policy.naver.com/policy/privacy.html 개인정보처리방침 네이버 개인정보 처리방침 (Ver.11.2) 네이버는 이용자 개인정보 보호를 여러 경영요소 가운데 최우선의 가치로 두고 있습니다. 이전 개인정보처리방침 보기 네이버에서만 제공하는 특별한 개인 policy.naver.com 이용약관을 만들기위해선 https://www.ftc.go.kr/ 다음 사이트를 방문하자. 정보공개의 표준약관에 들어가면 다음과 같이 검색할 .. 2023. 6. 21.
Initialize Database Using SQL Script in Spring Boot Initialize a Database Using JPA JPA에는 DDL 생성 속성이 존재한다. 엔티티에 매핑되는 테이블이 데이터베이스에 없는 경우 애플리케이션 초기화 단계에서 적절하게 테이블을 생성해 준다. 물론 종료 시 삭제, 업데이트, 아무런 일도 하지 않도록 설정할 수 있다. spring.jpa.generate-ddl이라는 external properties을 통해 DDL 기능을 끄고 킬 수 있다. spring.jpa.hibernate.ddl-auto (enum)은 다양한 행동을 지정한다. Spring boot는 내장 데이터베이스가 감지된 경우만 created-drop 옵션으로 동작합니다. 그 외에는 none으로 기본값을 가집니다. 이러한 schema creation을 활성화시키기 위해선 org.. 2023. 6. 21.
learning from open source https://codecatalog.org/ 2023. 6. 18.
DataBase 선택 가이드 (짧) 관계형 데이터베이스 관리 시스템 종류: oracle, mysql, postgresql, ms server.. 특징: 정형화 데이터, ACID, SQL, 고정된 스키마, 비용, 수평적 확장(샤딩) 접합성 : 데이터의 완전성이 중요한 경우, 고도의 정형화 데이터 문서 저장소 종류 : 몽고 DB, Couchbase 특징 : 데이터를 JSON, BSON, XML에 저장, 비관계형, 유연한 스키마, 빠른 속도, 수평 확장 용이, ACID 준수 희생, 질의가 한 문서 내에서만 가능 접합성 : 비정형, 반정형 데이터가 있는 경우, 분석, 빠른 프로토타입 작업 키-값 저장소 종류 : Redis, Memcached 특징 : 키는 값에만 연관된 고유 식별자이다. 키는 DBMS에 허용하는 모든 것, 값은 blob으로 저장되.. 2023. 6. 15.
SPF? DKIM? DMARC? 그렇습니다. 메일 서버를 구축하고 있는데, 실제 메일이 스팸처리가 되어 이를 방지하는 방법을 미리 알아보려고 합니다. 스팸메일의 문제점은 수신 거부를 해도 스팸 발송자가 발신자 정보를 지속적으로 위/변조하여 발송한다는 것인데요. 이런 행위를 이메일 위장, 또는 이메일 스푸핑(Spoofing)이라고 합니다. SPF(메일서버등록제, Sender Policy Framework) 레코드는 이를 방지하기 위한 인증 기술로, 메일서버 정보를 사전에 DNS에 공개 등록하여 메일에 표시된 발신자 정보가 실제 메일 서버 정보와 일치하는지 확인합니다. 대용량 메일을 발송하는 경우나 메일 서버의 신원이 불분명한 경우 국내 메일 서비스 업체나, Gmail을 포함한 여러 업체에서 해당 메일을 스팸으로 처리하는 것 같습니다. 우.. 2023. 6. 15.