🔐 HTTPS 그게 뭔데?S는 secure의 약자왜 HTTPS를 사용함?서버에 보내는 정보를 제 3자가 볼 수 없게 (비밀번호 같은거 서버로 보낼 때 가로채면 아찔)사이트가 진품인지, 즉 신뢰할 수 있는 사이트인지 검증 (기관으로 부터 검증된 사이트만 HTTPS 사용이 허가됨)암호화 방식대칭키 방식: 하나의 키를 가지고 암호화, 복호화문제점: 결국 한 번은 한 쪽에서 다른 쪽으로 대칭키를 전송해야하는데.. 대칭키를 해킹 당하면 말짱 도루묵비대칭키(공개키) 방식: 공개키로 암호화, 비공개키로 복호화 가능.비대칭키(공개키)대칭키의 문제점 때문에 비대칭키 방식을 사용하는 건 알겠어.그러면 비공개키가 클라이언트에 있어야 하는데, 네이버가 우리에게 준 공개키가 정품인지 확인..
분류 전체보기
2022 카카오 신입 공채 https://programmers.co.kr/learn/courses/30/lessons/92334 머리말 처음 엄청 쉽게 작성하고 10점 미만나와서 띠용? 30분 더 투자해서 솔브 dictionary 관련 자주 접하다보면 외워지겠지... 누적 신고 횟수 담으면서 불량 이용자 찾기 → 이메일 보낼 횟수 담기 순으로 처리하였다. 🐥 이건 얻어가자 리스트에서 중복을 중복을 제거하고 싶으면? list(set(리스트)) 해시맵을 구성할 때 key값이 정해져있다면? dict.fromkeys(리스트, 초기값) 코드 def solution(id_list, report, k): answer = [] report = list(set(report)) # set을 이용해 중복으로 신고한 내역 제..
[2020 카카오 블라인드 채용] https://programmers.co.kr/learn/courses/30/lessons/60057 머리말 딱 구현 문제라고 느껴져 문제를 잘 해석하려고 노력하였다. 하지만, 문자열은 제일 앞부터 정해진 길이만큼 잘라야 합니다. 이 문장을 과소평가하여 첫 제출 때 틀렸다. 그리고 올바르게 짠 것 같은데 자꾸 72점이 나와 다른 사람의 코드를 참고할까 하다가 끝까지 디버깅하여 결국 풀어냈다. 코드 의식의 흐름대로 작성하여 코드가 난잡합니다 🤢 def solution(s): answer = [len(s)] for cut in range(1, len(s) // 2 + 1): # 자를 수 있는 범위 (최소 2개 최대 절반개) substrIdx = 0 cutstr = '' # ..
https://www.acmicpc.net/problem/2357 머리말 solved 통계를 보니 자료구조 관련 데이터가 별로 없길레 관련 문제 중에 랜덤으로 하나를 골랐다. 문제 자체는 굉장히 평이해보였지만 n, m 범위가 1 이상 10만 이하 라는 점에서 아,, 이거 뭔가 트리 써야할 것 같은데? 라는 생각이 들었다. 어떤 트리 써야할 지 몰라 알고리즘 분류를 보니 세그먼트 트리 문제라고 한다. 세그먼트 트리 백준 블로그에 상세한 설명이 적혀있다. 세그먼트 트리는 어떠한 구간 내의 로직을 처리할 때 굉장히 효율적인 알고리즘이다. 트리의 노드에 범위라는 개념이 들어가고, 저장할 데이터는 로직에 따라 다르겠지만 이 문제에서는 해당 구간의 최솟값, 최댓값을 저장한다. 리프 노드(idx)라면 idx ~ id..
https://www.acmicpc.net/problem/1162 머리말 오랜만에 9시에 일어나서 백준 문제를 풀어봤다. 일찍 일어난거 맞지..? 어떤 문제를 풀지 고민하다가 최근 수업시간에 다루었던 다익스트라 문제를 골랐다. 1시간 30분 고민해서 풀었다가 6%에서 바로 틀렸다. 허허 아직 부족하다. 나의 접근 방법 다익스트라 문제라는 것만 생각하고 어떻게 문제에 다익스트라를 녹여낼까 고민했던 것 같다. 모든 가중치를 priority queue에 넣고 크기가 큰 순으로 weight를 0으로 집어 넣고 다익스트라를 적용시켰다. 하지만, 조금만 생각해보면 당연히 잘못된 풀이법이다. weight가 큰 것을 포장 도로로 만들 필요가 없기 때문이다. 또한 'k번 이하'라는 조건에 주의를 기울여야 했을 것이다. ..
"오브젝트: 코드로 이해하는 객체지향 설계" 책의 기록입니다. 객체지향 설계 설계란 코드를 배치하는 것이다. 설계를 구현과 떨어트려서 이야기하는 것은 불가능하다. 좋은 설계란, 오늘 요구하는 기능을 온전히 수행하면서 내일의 변경을 매끄럽게 수용할 수 있는 설계 왜? 요구사항이 항상 변경되기 때문임. 개발을 시작하는 시점에 구현에 필요한 모든 요구사항을 수집하는 것은 불가능에 가까움 코드를 변경할 때 버그가 추가될 가능성이 높기 때문 변경에 유연하게 대응할 수 있는 코드를 짜자.ᐟ 객체지향 프로그래밍을 향해 다음 두 가지에 집중하자 첫째, 어떤 클래스가 필요한지를 고민하기 전에 어떤 객체들이 필요한지 고민하라. 클래스의 윤곽을 잡기 위해서는 어떤 객체들이 어떤 상태와 행동을 가지는지 먼저 결정 둘째, 객체..
Elasticsearch 엘라스틱서치는 모든 요청과 응답을 REST API 형태로 제공한다. 키바나 콘솔 사용법 Management -> Dev Tools 손쉽게 엘라스틱서치와 REST API로 통신할 수 있음 인덱스 : 도큐먼트를 저장하는 논리적 구분자 특정 도큐먼트 개수에 도달하거나 특정 용량을 넘어서면 인덱스를 분리 ex) 날짜/시간 단위로 인덱스를 분리하면 특정 날짜의 데이터를 쉽게 처리 도큐먼트 : 실제 데이터를 저장하는 단위 클러스터 내부 구조 하나의 프로젝트에서 하나의 클러스터를 생성 클러스터 내부는 여러 개의 인덱스를 생성 인덱스 내부에는 JSON 형태로 된 다수의 도큐먼트가 존재 다수의 도큐먼트는 복수의 필드를 가짐 실행 확인 8.0.1 버전부터 자동 보안 설정이 되어 있어서 다음과 같이..
개요 앞선 포스트에서 JPA를 연결하는 과정에서 application.properties를 다음과 같이 설정하였다. ## h2 데이터베이스 설정 ## spring.h2.console.enabled=true ## Maria DB 데이터베이스 설정 spring.datasource.driverClassName=org.mariadb.jdbc.Driver spring.datasource.url=jdbc:mariadb://localhost:3306/around_hub_shop spring.datasource.username=root spring.datasource.password=비밀번호 ## JPA 설정 spring.jpa.hibernate.ddl-auto=create spring.jpa.show-sql=true..