Light Blue Pointer
본문 바로가기

분류 전체보기305

디자인 패턴 디자인 패턴이란? 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상화관계 등을 이용하여 해결할 수 있도록 하나의 ‘규약’ 형태로 만들어 놓은 것 Design patterns는 Elements of Reusable Object-Oriented Software라는 책으로 처음 등장했는데 네 명의 C++ Engineer들이 썼다고 함 정답은 아니지만 알아두면 사고방식 향상에 도움이 된다고 한다 https://refactoring.guru/design-patterns 이 웹사이트에 가면 상세한 설명이 있다 디자인 패턴의 장점 재사용성 반복적인 문제에 대한 일반적인 해결책을 제공하므로, 이를 재사용하여 유사한 상황에서 코드를 더 쉽게 작성할 수 있다. 가독성 일정한 구조로 정리하고 명확하게 작성하여 개발자가.. 2024. 4. 17.
Spring 프로젝트 HTTP에서 HTTPS로 변경하기 (Java로 SSL 만들어서 Spring 프로젝트에 적용하기(P12 방식)) Spring 프로젝트를 http에서 https로 만들기 위해서 SSL을 발급받아서 추가하는 방법을 설명하려고 한다 인텔리제이 cmd가 먹히지 않아서 Windows cmd prompt로 했다 관리자 모드로 열어주지 않으면 아래와 같은 에러가 발생한다 keytool error: java.io.FileNotFoundException: keystore.p12 (Access is denied) jdk bin으로 이동하면 keytool이 있어서 jdk bin으로 이동해준다 C:\\Program Files\\Java\\jdk-17\\bin> Keystore + 키 쌍 생성 keytool -genkey -alias {keystore name} -keyalg RSA -storetype PKCS12 -keystore {k.. 2024. 4. 17.
[프로그래머스] 이모티콘 할인행사 문제 주소 https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 카카오톡에서는 이모티콘을 무제한으로 사용할 수 있는 이모티콘 플러스 서비스 가입자 수를 늘리려고 합니다. 이를 위해 카카오톡에서는 이모티콘 할인 행사를 하는데, 목표는 다음과 같습니다. 이모티콘 플러스 서비스 가입자를 최대한 늘리는 것. 이모티콘 판매액을 최대한 늘리는 것. 1번 목표가 우선이며, 2번 목표가 그 다음입니다. 이모티콘 할인 행사는 다음과 같은 방식으로 진행됩.. 2024. 4. 17.
[백준] 나무 자르기 문제 주소 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 문제 설명 상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기를 이용해서 나무를 구할것이다. 목재절단기는 다음과 같이 동작한다. 먼저, 상근이는 절단기에 높이 H를 지정해야 한다. 높.. 2024. 4. 16.
[백준] 예산 문제 주소 https://www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 문제 설명 국가의 역할 중 하나는 여러 지방의 예산요청을 심사하여 국가의 예산을 분배하는 것이다. 국가예산의 총액은 미리 정해져 있어서 모든 예산요청을 배정해 주기는 어려울 수도 있다. 그래서 정해진 총액 이하에서 가능한 한 최대의 총 예산을 다음과 같은 방법으로 배정한다. 모든 요청이 배정될 수 있는 경우에는 요청한 금액을 그대로 배정한다. 모든 요청이 배정될 수 없는 경우에는 .. 2024. 4. 16.
[백준] 세탁소 사장 동혁 문제 주소 https://www.acmicpc.net/problem/2720 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net 문제 설명 미국으로 유학간 동혁이는 세탁소를 운영하고 있다. 동혁이는 최근에 아르바이트로 고등학생 리암을 채용했다. 동혁이는 리암에게 실망했다. 리암은 거스름돈을 주는 것을 자꾸 실수한다. 심지어 $0.5달러를 줘야하는 경우에 거스름돈으로 $5달러를 주는것이다! 어쩔수 없이 뛰어난 코딩 실력을 발휘해 리암을 도와주는 프로그램을 작성하려고 하지만, 디아블로를 하느라 코딩할 시간이 없어서 이 문제를 읽고 있는 여러분이 대신 해주어야 한다. 거스름돈의 액수가 주.. 2024. 4. 16.
[백준] A → B 문제 주소 https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 문제 설명 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자. 입력 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. 출력 A를 B로 바꾸는데 필요한 연산의 최솟값에 1을 더한 값을 출력한다. 만들 수 없는 경우에는 -1을 출력한다. 예제 입력 1 2 162 예제 출력 1 5 2 → 4 → 8 → 81 → 162 예제 입력 2 4 42 예제 출력 2 -1 예제 입력 3 10.. 2024. 4. 16.
HTTP/HTTPS HTTP = Hypertext Transfer Protocol 클라이언트와 서버 간 통신을 위한 통신 규칙 세트 또는 프로토콜 사용자가 웹 사이트를 방문했을 시 사용자 브라우저가 웹 서버에 HTTP 요청을 전송 웹 서버는 HTTP 응답으로 응답 웹 서버와 사용자 브라우저는 데이터를 일반 텍스트로 교환 HTTPS = Hypertext Transfer Protocol Secure HTTP의 더 안전한 버전 HTTPS에서는 브라우저와 서버가 데이터를 전송하기 전에 SSL/TLS를 사용하여 안전하고 암호화된 연결을 설정함 SSL/TLS를 사용하여 연결을 암호화하는 웹사이트는 URL에 HTTPS를 포함한다 📖SSL /TLS HTTP보다 HTTPS가 나은 이유 보안 HTTP 메시지는 일반 텍스트라 권한이 없어도 쉽.. 2024. 4. 11.
SSL/TLS 📖SSL = Secure Sockets Layer encryption-based Internet security protocol SSL은 웹을 통해서 전송되는 데이터를 암호화(Encrypt) 한다. 누군가 데이터를 중간에 가로채더라도 암호화된 의미없는 문자열만 보게 된다. 📖SSL의 작동 방식 두 기기의 본인 확인을 위해 두 기기 사이에 handshake라고 불리는 authentication process를 시작한다. 데이터에 디지털 서명(digital sign)을 남겨서 데이터 무결성(data integrity)를 제공한다 매 업데이트마다 점점 더 안전해 지다가 1999년에 TLS로 넘어갔다 📖TLS = Transport Layer Security Internet security protocol tha.. 2024. 4. 11.