전체 글

1. 서버 엔터프라이즈 운영 환경에서 많은 양의 서버를 운영해야 한다.이때 3가지 방식이 존재한다. 베어메탈, 하이퍼바이저, 컨테이너하나씩 알아보자베어메탈은 우리가 일반적으로 컴퓨터 사용하는 방식과 똑같다하이퍼바이저를 알아보기 전에 가상화를 알아보자 2. 가상화 가상화란 실제로 존재하는 컴퓨터가 아니지만 마치 컴퓨터가 존재하는 것처럼 만들어준다. 즉, 하나의 컴퓨터로 여러대 컴퓨터를 가진것처럼 사용이 가능하다.물리적인 컴퓨터 안에 논리적인 컴퓨터를 사용하는 것이다. 그럼 가상화를 사용하면 뭐가 좋을까?예를들어 OS 1개에 4개의 프로그램을 실행한다고 했을 때, 문제가 없어보인다.하지만, 한 프로그램에서 문제가 생기면, 이는 전체에 영향을 줄 수 있고, 한 프로그램에서 사용량이 증가해서 남아있는 리소스를 ..
개발을 하면서 도커는 필연적으로 사용할 수 밖에 없었고, 이번 방학 때 제대로 공부해보려고 한다. 현재 아래 강의를 듣고 있고, 강사님께 허락을 맡고 블로그에 정리글을 올리려고한다.https://inf.run/Apgvc 개발자를 위한 쉬운 도커 강의 | 데브위키 - 인프런데브위키 | 현업 개발자가 도커를 사용한 경험을 녹여낸 새로운 커리큘럼으로 기존 교재 및 강의와 차별된 강의를 제공합니다. 단순한 명령어 사용법이 아닌 도커를 왜 사용해야하는지 대한 근www.inflearn.com  카테고리https://koreatstm.tistory.com/155
이번에 18학점 7전공을 들었다. ( 2과목의 P/NP 과목 & 5과목의 3학점과목 )매일 평균 8시간 이상씩은 공부하면서 보람차게 보낸것 같아 수업후기와 다른 활동들을 정리하며 한학기를 마무리 하려한다. 1. 데이터베이스스튜디오이번 학기 가장 열심히 한 과목이다. 4학년 수업으로 데이터베이스 개념적 설계에 대한 부분을 깊게 파고드는 과목이었다.교수님께서 ERD에 대한 요구사항을 주시면, 매주 팀 과제로 그에 대한 개념적 설계를 진행하였다.ERwin툴도 사용하고, Oracle에 맞게 변경도 해보고, 여러 기법(chen, 까마귀발, 정보공학) 등을 사용하며 이를 표현하였다.매주 팀프로젝트로 진행한 설계에 대해서 수업 시간에 몇 팀을 선정하여 학우들 앞에서 발표를 하였고, 이를 준비하는 과정에서 많은 경우를..
DP를 구현하는 방법은 2가지가 존재한다. Top-downBottom-up구현재귀반복문저장방식메모이제이션타뷸레이션 Memoization - 필요한 부분 문제들만 구하기부분 문제들의 답을 한 번 구했으면 또 구하지 않도록 (중복연산 없도록) cache에 저장해두고 다음에 갖다 쓰기 Tabulation - 부분 문제들의 답을 미리 다 구해두면 편하다.테이블을 채워간다 → 타뷸레이션 문제를 쪼개서 작은 문제부터 구해가며 원래 문제의 답을 구하는 방식이다.핵심은 점화식을 찾고, 테이블만 잘 정의하면 풀린다. (점화식 찾기가 쉽지 않다는게 문제 ㅋㅋ) 이제 문제들을 풀어보자. 문제풀이https://koreatstm.tistory.com/148https://koreatstm.tistory.com/149https:/..
https://www.acmicpc.net/problem/10844규칙을 먼저 찾아보자본인은 A4용지에 그려가며 규칙을 찾아보았다.인덱스를 0부터해서 입력이 최대 100이기에, 100행 10열로 만들어본다면, 아래 사진과 같이 나온다.써보니 규칙이 보인다.1행은 모든 값이 1이고, 2행부터는 특별한 규칙이 생긴다.화살표로 표시해 놓았듯 0열의 값은 이전 행의 1열의 값이고,9열의 값은 이전 행의 8열의 값임을 알 수 있다.또한 가운데 값들은 예를들어 3행 3열이라고 하면, 그 값은 2행2열과 2행4열의 값의 합임을 알 수 있다.이제 타뷸레이션으로 풀어보자 n=int(input())cache = [[0]* 10 for _ in range(101)]for i in range(1,101): for j i..
https://www.acmicpc.net/problem/11726규칙을 먼저 찾아보자본인은 A4용지에 그려가며 규칙을 찾아보았다.즉, 전에 풀었던 내용과 같은 방식이다.https://koreatstm.tistory.com/148 [백준/Python] 2748:피보나치 수 2https://www.acmicpc.net/problem/2748n=int(input())def func(n): if n==0: return 0 if n==1: return 1 else: return func(n-1)+func(n-2)print(func(n))시간초과가 난다.캐싱을 안해서 오래걸리고, 시간복잡도도 엄청 높기에 시간초과가koreatstm.tistory.com이처럼 f(n) = f(n-1) + f(n-2)의 규칙이다.이제..
https://www.acmicpc.net/problem/11051초기코드n, k = map(int,input().split())def fun(n,k): if k==n or k==0: return 1 else: return fun(n-1,k-1)+fun(n-1,k)print(fun(n,k)%10007)시간초과난다재귀(메모이제이션)import sysn, k = map(int,input().split())sys.setrecursionlimit(10**7)cache = [[0]*1001 for _ in range(1001)]def fun(n,k): if cache[n][k]: # 0이 아닌 수라면 return cache[n][k] if k==n ..
https://www.acmicpc.net/problem/2748n=int(input())def func(n): if n==0: return 0 if n==1: return 1 else: return func(n-1)+func(n-2)print(func(n))시간초과가 난다.캐싱을 안해서 오래걸리고, 시간복잡도도 엄청 높기에 시간초과가 나는 것이다,우리는 중간저장인 캐싱을 사용해야한다.타뷸레이션n=int(input())cache = [0] * 100for i in range(100): if i==0: cache[i]= 0 if i==1: cache[i]= 1 else: cache[i]= cache[..
계란소년
EggBoy Coding