본문 바로가기

til5

[TIL] 시간 복잡도와 알고리즘 문제 풀기 시간 복잡도니 공간 복잡도니 하는 이야기는 전공 공부할 때나 자격증 준비할 때나 아주 기초로 넘어가곤 했지만, 정작 알고리즘 문제를 풀 때는 어떻게 적용을 시키는게 좋을지 감이 잡히지 않았다. 그에 관한 내용에 대해 서술한다. 시간 복잡도란? 어떠한 알고리즘에서 걸리는 시간을 의미한다. 정확하게 시간으로 측정할 수 없기 때문에, 코드 한 줄 한 줄이 얼마나 수행되느냐를 세어 계산하곤 한다. 이 때 (입력의 크기 등에 의해서) 최악의 시간이 든다고 계산하여 빅오표기법으로 나타낸다. 예를 들어 보자. # 1 2020. 10. 28.
[TIL] Hibernate PK 생성 전략 JPA 에서의 PK 생성 방법 PK의 선정 방식에는 자연키(Natural Key), 대체키 (Surrogate Key) 두 가지 방식이 있다. 자연키 (Natural Key) 대체키 (Surrogate Key) 의미가 있는 컬럼을 PK로 사용함 의미가 없는, PK로 사용하기 위한 컬럼을 따로 생성함 연락처, 주민등록번호 등 Auto Increament, Sequence 등 JPA에서는 @Id와 함께 @GeneratedValue(sterategy) 어노테이션을 통해 대체키 방식을 제공하고 있다. 생성 전략 설명 GenerationType.AUTO JPA 구현체 (ex: Hibernate) 가 결정한다. GenerationType.IDENTIFY 데이터베이스에 위임한다. (ex: MySQL : auto-in.. 2020. 10. 15.
[TIL] SOMA CAMP 1일차 - 최백준 알고리즘 최신 알고리즘 트렌드 및 유형별 알고리즘 문제 공략법에 대한 강연을 들었다. (컨디션 문제로 많이 지각해서 놓친 부분이 많다.) 최신 알고리즘 트렌드 요즘 코딩 테스트는 파싱, 시뮬레이션, 브루트포스, BFS, DP 위주로 출제되는 경향이라고 한다. 알고리즘 문제를 풀다가 막히면, 혼자서 끝까지 해결하려고 하지 말고, 답을 보고 빠르게 이해하여 시간을 절약하는 편이 좋다고 한다. 답을 외우거나 기출 문제를 잔뜩 푸는 것은 별 의미가 없다. 그보다는 비슷한 알고리즘을 쓰는 문제들을 많이 풀어보고, 어떻게 문제를 풀어내는지 과정을 이해하라. 예를 들어, 이 문제는 DP로 푸는 문제다, 라고 하면 왜 DP 문제인지를 알아야 한다. 이 알고리즘으로 풀리는 문제들의 특징을 잘 알면 쉽다. 알고리즘 문제 공략법 (.. 2020. 10. 14.
[TIL] Spring boot - MySQL 연동 삽질 1. 내장 데이터베이스 (H2) 와 연동되는 문제 나는 Spring boot와 MySQL을 연동하고 싶어서, application.yml에 MySQL 접속 정보를 야무지게 등록해두었다. [appliction.yml] spring: datasource: url: jdbc:mysql://서버/디비?serverTimezone=UTC&characterEncoding=UTF-8 username: 유저 password: 패스워드 driver-class-name: com.mysql.cj.jdbc.Driver 그러나 정작 JPARepository.save()를 하고자하니 자꾸 아래와 같은 에러가 발생하였다. 내 DB의 account 테이블과 스프링부트의 Account 엔티티는 accessToken 이라는 컬럼/필드를 .. 2020. 10. 13.
[TIL] Docker 특강 1차시 (1) :: 개념 Docker 개념 Docker는 크게 두 가지 용도로 활용할 수 있다. OS Containers OS를 컨테이너로 운영 -> 런타임 기반의 컨테이너 운영 Application Containers Application 을 컨테이너로 운영 OS Container의 경우 VM에 비해 속도가 빠르며 성능이 좋다. 왜냐면 도커의 기술 스택이 다 리눅스 커널 기술 스택이라서 라고 한다. Docker의 컨테이너를 만들 때, 하나로 만드는 것이 아니라, 여러 이미지를 레이어해서 만든다. 이 이미지들은 read-only 이며, 최상단의 컨테이너만 write가 된다. 도커 아키텍쳐 클라이언트가 도커 데몬으로 컨테이너를 돌리는데, 만약 돌릴 이미지가 없다면, 외부의 레파지토리에서 이미지를 받아와서 돌린다. 취약점 1. 도커.. 2020. 10. 12.