목록2024/04 (15)
쌓고 쌓다
MySQL의 데이터를 백업해보고 그 데이터를 Docker MySQL에 가져와보자. 그리고Docker 컨테이너를 통해 올린 DB 데이터를 Host에서 관리해보자. 먼저 Docker MySQL 볼륨을 마운트해보자.즉, Docker 컨테이너에 올려진 DB의 데이터가 Host에서 관리되길 원하는것이다.docker-compose.ymlversion: '3'services: db: image: mysql:8.0.33 container_name: spot-db restart: always ports: - "3306:3306" command: - "--character-set-server=utf8mb4" - "--collation-server=utf8mb4_uni..
https://school.programmers.co.kr/learn/courses/30/lessons/42628# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이 방법최대힙과 최소힙 두개의 힙을 사용합니다.삽입 연산시 두 힙에 모두 삽입합니다.최대/최소값 삭제 연산시 해당 힙에서 삭제를합니다.그럼 해당 힙이 아닌 다른 힙에서의 데이터 불일치는 어떻게 해결하나?Map을 통해 값의 삽입, 삭제 기록을 남깁니다. 즉, 남은 값의 개수를 Map의 Value로 사용합니다.힙에서 삭제 연산시 Map에서 남은 값이 존재하는지 확인 후에 존재하면 삭제연산을 정상적으로..
하하.. 나의 첫 코딩 테스트의 결과는 불합격이다..~ 이번 테스트는 알고리즘과 CS 객관식 문제가 있었다. 문제를 상세히 설명하면 문제가 될 것 같아서 간단히 리뷰해야겠다.. 우테캠 단톡방을 보니 2솔인데 CS 문제를 잘 풀었거나 3솔과 CS잘 푼 사람들이 합격한거 같다. CS 문제는 처음이기도하고 준비를 안해갔다.. 어떤 느낌인지 감 잡아서 좋은 경험이였던거 같다. 코딩 테스트(알고리즘) 첫번째 문제는 정렬 문제였다. 그렇게 어렵진 않았던거 같다. 정렬하는 방법을 알아야지 풀 수 있는 문제이다. 두번째 문제는 백트래킹? DFS? 문제였다. 나름 풀이가 생각이 안나서 시간을 많이써서 풀었다.. 여기까지는 테스트 케이스는 통과하는 코드로 제출 했다. 세번째 문제는 그리디 두 사람이 낸 세금, 소득의 합이..
서버와 DB는 통신시 다음 과정을 거친다. 커넥션 연결 : TCP/IP를 통해 연결 SQL 전달 : 커넥션을 통해 서버는 MySQL에 맞는 SQL을 전달한다. 결과 응답 : DB는 서버가 전달한 SQL을 수행하고 결과를 응답한다. 그런데 여기서 DB의 종류가 바뀌면 어떻게 될까? DB마다 커넥션을 연결하고 쿼리를 전달하고 응답이 다르다는 문제가 발생한다. 즉, 서버에서 개발한 DB 사용 코드도 변경해야하고 DB에 맞는 통신 방법을 공부해야한다. 이런 문제를 해결하기 위해 JDBC가 등장한 것이다. JDBC 표준 인터페이스 JDBC(Java Database Connectivity)는 자바에서 DB에 접속, 자료의 쿼리, 업데이트등을 돕는 자바 API이다. 다음 3가지 기능을 표준 인터페이스로 제공한다. j..
스프링부트 서버는 Container로 띄우고 DB는 로컬을 사용하길 원하는 상황이다. DB는 localhost만 접속이 가능한 상황인데 Docker 컨테이너에서 localhost는 로컬이 아닌 컨테이너 자신의 ip이다. 쉽게말해 컨테이너에서 localhost는 컨테이너이기 때문에 내 로컬에 접근하지 않는것이다. 그래서 Dokcer 컨테이너에서 local의 DB에 접근을 못하는 상황이다 application.properties를 다음과 같이 수정한다. spring.datasource.url=jdbc:mysql://host.docker.internal:3306/spot -> 원래는 mysql://localhost:3306 이지만 host.docker.internal로 컨테이너 내부에서 호스트 머신의 네트워..
https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 위의 피라미드는 다음과 같은 배열로 들어온다. 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 아래의 층부터 위로 채워나갈 예정이다. 2 7 4 4가 존재하는 층 시작한다. 2 는 다음과 같은 선택지가 있다. 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 4 와 5중에 더 큰 수를 2에 더하면 된다. 이때 2에 5를 더해주면 된다. 다음은 7에 대해 이야기해보자. 7에서 선..
IP(Internet Protocol) 지정 IP 주소에 데이터 전달 패킷 단위로 데이터 전달 IP 프로토콜의 한계 비연결성 : 패킷 전송시, 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 내가 어떤 친구가 있겠지하고 전송했지만 상대 PC가 꺼져있을 수 있다. 그런 경우에도 난 전송을 하는것을 뜻한다. 난 전송이 제대로 되었는지 모름... 비신뢰성 : 내가 패킷을 전송했는데 패킷이 사라지거나 순서가 제대로 도착하지 않을 수 있다. 이것을 해결 못함... 프로그램 구분 : 한 피씨에서 카톡, 게임 등등.. 여러 애플리케이션이 있는데 통신하는 애플리케이션이 구분할 수 없음.. 인터넷 프로토콜 4계층 애플리케이션 계층 - HTTP, FTP 전송 계층 - TCP, UDP 인터넷 계층 - IP 네트워..
C++로 알고리즘을 풀고 공부했는데... 우아한 테크 캠프 모집을 봤는데 코딩 테스트 언어로 Java만 지원 받는다는 ... 충격적인... 그래서 백엔드를 희망하기도해서 이제 알고리즘 공부를 Java로 시작하기로 다짐했다.. 당장 코딩 테스트인데 자바로 기본적인 자료구조 사용하는 법을 정리하고자 한다.. 자료구조 사용을 위해 다음을 import하면 된다. import java.util.*; Stack Stack s = new Stack(); // 생성 s.push(1); // 삽입 s.pop(); // 삭제 s.peek(); // 조회 s.empty(); // 크기 조회 Queue Queue q = new LinkedList(); // 생성 q.add(1); // 삽입 q.remove(); // 삭제 q..