분류 전체보기
-
영어 발표 스터디를 하고 있다. (참고로 OMEP: Oh My English Present 는 사실 내가 그냥 지은 이름이다.) 내 발표들을 다시 정리해두면 좋을 것 같아, 블로그에도 업로드한다. We seem to be in the midst of the birth of a number of AIs, not the least of which is development tool AI, which threatens development. So today we're going to talk about generative AI. First, let me give you a quick introduction to what generative AI with v0 is, which is what we're goin..
[Study | OMEP] week 10: generate AI and Vercel v0영어 발표 스터디를 하고 있다. (참고로 OMEP: Oh My English Present 는 사실 내가 그냥 지은 이름이다.) 내 발표들을 다시 정리해두면 좋을 것 같아, 블로그에도 업로드한다. We seem to be in the midst of the birth of a number of AIs, not the least of which is development tool AI, which threatens development. So today we're going to talk about generative AI. First, let me give you a quick introduction to what generative AI with v0 is, which is what we're goin..
2023.11.25 -
디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 1. DBMS 아키텍처 | 공짜 밥은 존재할까? DBMS 아키텍처 개요 쿼리 평가 엔진 계획을 세우고 실행하는 DBMS의 핵심 기능 담당 버퍼 매니저 버퍼 (메모리)영역을 관리 디스크 용량 매니저 어디에 어떻게 데이터 저장할지, 데이터의 읽고 쓰기를 제어 트랜잭션 매니저와 락 매니저 트랜잭션의 정합성 유지 및 실행. 필요시 데이터에 락을 걸어 다른 요청 대기 리커버리 매니저 데이터 정기적 백업, 문제시 복구 성능의 관점에서 가장 중요한 것은 쿼리 평가 엔진 (혹은 이 엔진이 세우는 실행 계획) 버퍼 매니저는 성능과 밀접한 관련을 가짐...
[SQL 레벨업] 1장디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 1. DBMS 아키텍처 | 공짜 밥은 존재할까? DBMS 아키텍처 개요 쿼리 평가 엔진 계획을 세우고 실행하는 DBMS의 핵심 기능 담당 버퍼 매니저 버퍼 (메모리)영역을 관리 디스크 용량 매니저 어디에 어떻게 데이터 저장할지, 데이터의 읽고 쓰기를 제어 트랜잭션 매니저와 락 매니저 트랜잭션의 정합성 유지 및 실행. 필요시 데이터에 락을 걸어 다른 요청 대기 리커버리 매니저 데이터 정기적 백업, 문제시 복구 성능의 관점에서 가장 중요한 것은 쿼리 평가 엔진 (혹은 이 엔진이 세우는 실행 계획) 버퍼 매니저는 성능과 밀접한 관련을 가짐...
2023.11.15 -
디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 9장. 백업과 복구 - 장애에 대비하는 구조 트랜잭션의 특성 중 Durability(지속성)은 시스템이 정상일 때뿐만 아니라 비정상적 종료 등의 시스템 장애에 견딜 수 있다는 것을 의미 데이터베이스의 쓰기는 기억장치의 임의 장소에 무작위로 액세스해서 쓰기를 수행 → 동기화 쓰기는 느려서 성능 면에서 실용적이지 X DBMS의 3가지 구조 지속성과 성능의 양립을 위한 DBMS 구조 로그 선행 쓰기 (WAL. Write Ahead Log) 데이터베이스의 데이터 파일 변경을 직접 수행하지 않고 우선 로그 변경 내용을 기술한 로그 레코드를 작성..
[데이터베이스 첫걸음] 9-10장디비디비딥 스터디 시리즈 더보기 [ 데이터베이스 첫걸음 ] 1장 2장 3장 4장 5장 6장 7장 8장 9-10장 [ SQL 첫걸음 ] 1장 2장 3-4장 5-6장 7-8장 9장. 백업과 복구 - 장애에 대비하는 구조 트랜잭션의 특성 중 Durability(지속성)은 시스템이 정상일 때뿐만 아니라 비정상적 종료 등의 시스템 장애에 견딜 수 있다는 것을 의미 데이터베이스의 쓰기는 기억장치의 임의 장소에 무작위로 액세스해서 쓰기를 수행 → 동기화 쓰기는 느려서 성능 면에서 실용적이지 X DBMS의 3가지 구조 지속성과 성능의 양립을 위한 DBMS 구조 로그 선행 쓰기 (WAL. Write Ahead Log) 데이터베이스의 데이터 파일 변경을 직접 수행하지 않고 우선 로그 변경 내용을 기술한 로그 레코드를 작성..
2023.11.05 -
교내 소프트웨어 경진대회에 출품하기 위해 아주 간단한 웹사이트를 제작하였다. 혼자서 제작하다보니 많이 아쉬운 부분이 있다. 특히 SSR로 진행했기 때문에, 추후 디벨롭을 한다면 react를 사용해서 제대로 해두어야겠다.주요 기능은 솜보드(CRUD) | 이번주 학식(크롤링) | 솜식봇(챗봇) 이렇게 세가지로 구성되어 있다.아키텍처 및 사용언어사실 서버를 이틀만에 구축해서 좀 부족한 점이 많았다... 가상화 넘 어렵다. 챗봇 - 솜식봇실제 코드는 아래처럼 프롬포트를 입력하도록 했다. 프롬프트 엔지니어링을 접하고, 조금 더 개선하여 추가해둔 상태이다. 위는 이전의 프롬프트이다. 솜보드간단한 CRUD이다. 이전에 들었던 김영한님 spring 강의 코드를 거의 유사하게 사용하였다. 시간이 없었다보니 디자인도 이쁘..
[제 12회 소프트웨어 경진대회] 솜식Talk교내 소프트웨어 경진대회에 출품하기 위해 아주 간단한 웹사이트를 제작하였다. 혼자서 제작하다보니 많이 아쉬운 부분이 있다. 특히 SSR로 진행했기 때문에, 추후 디벨롭을 한다면 react를 사용해서 제대로 해두어야겠다.주요 기능은 솜보드(CRUD) | 이번주 학식(크롤링) | 솜식봇(챗봇) 이렇게 세가지로 구성되어 있다.아키텍처 및 사용언어사실 서버를 이틀만에 구축해서 좀 부족한 점이 많았다... 가상화 넘 어렵다. 챗봇 - 솜식봇실제 코드는 아래처럼 프롬포트를 입력하도록 했다. 프롬프트 엔지니어링을 접하고, 조금 더 개선하여 추가해둔 상태이다. 위는 이전의 프롬프트이다. 솜보드간단한 CRUD이다. 이전에 들었던 김영한님 spring 강의 코드를 거의 유사하게 사용하였다. 시간이 없었다보니 디자인도 이쁘..
2023.11.03 -
영어 발표 스터디를 하고 있다. (참고로 OMEP: Oh My English Present 는 사실 내가 그냥 지은 이름이다.) 내 발표들을 다시 정리해두면 좋을 것 같아, 블로그에도 업로드한다. There's an interesting article that I recently read about JSON, which is a format that I use a lot, and the author argues that JSON is garbage, and it's a really interesting read, and if you've ever used JSON, it's a fun read that will make you think twice about data formats and look bac..
[Study | OMEP] week 8: Is JSON really trash?영어 발표 스터디를 하고 있다. (참고로 OMEP: Oh My English Present 는 사실 내가 그냥 지은 이름이다.) 내 발표들을 다시 정리해두면 좋을 것 같아, 블로그에도 업로드한다. There's an interesting article that I recently read about JSON, which is a format that I use a lot, and the author argues that JSON is garbage, and it's a really interesting read, and if you've ever used JSON, it's a fun read that will make you think twice about data formats and look bac..
2023.11.03 -
서버 가상화 환경에서의 I/O 장치 가상화 방법 전통적인 I/O 장치는 한개의 프로그래밍 인터페이스를 가진다. 하지만, master가 여러개라면? 세가지의 suport option이 지원된다. 서버 가상화 환경에서 I/O 장치를 가상화하려면 다음과 같은 기능들을 가상화해야 한다. 인터럽트 처리 DMA를 위한 MMIO(Memory Mapped I/O) 이 기능들을 구현하기 위해서 다음과 같은 전략들이 시도되었다. 1. 에뮬레이션 - 디바이스 사용 [그림 8. 디바이스 에뮬레이션 도식] 디바이스 에뮬레이션은 기존 OS 드라이버와 호환되는 가상 장치를 만들어 VM에 제공해 주는 방식을 말한다. 에뮬레이션의 가장 큰 장점은 바로 호환성이다. 가상 장치만 제대로 구현된다면 Guest OS 수준에서는 수정할 것이 ..
[Virtualization 101] 2. Vt-d서버 가상화 환경에서의 I/O 장치 가상화 방법 전통적인 I/O 장치는 한개의 프로그래밍 인터페이스를 가진다. 하지만, master가 여러개라면? 세가지의 suport option이 지원된다. 서버 가상화 환경에서 I/O 장치를 가상화하려면 다음과 같은 기능들을 가상화해야 한다. 인터럽트 처리 DMA를 위한 MMIO(Memory Mapped I/O) 이 기능들을 구현하기 위해서 다음과 같은 전략들이 시도되었다. 1. 에뮬레이션 - 디바이스 사용 [그림 8. 디바이스 에뮬레이션 도식] 디바이스 에뮬레이션은 기존 OS 드라이버와 호환되는 가상 장치를 만들어 VM에 제공해 주는 방식을 말한다. 에뮬레이션의 가장 큰 장점은 바로 호환성이다. 가상 장치만 제대로 구현된다면 Guest OS 수준에서는 수정할 것이 ..
2023.10.29 -
영어 발표 스터디를 하고 있다. (참고로 OMEP: Oh My English Present 는 사실 내가 그냥 지은 이름이다.) 내 발표들을 다시 정리해두면 좋을 것 같아, 블로그에도 업로드한다. To do or not to do? Prompt: The following is an agent that recommends movies to a customer. DO NOT ASK FOR INTERESTS. DO NOT ASK FOR PERSONAL INFORMATION.Customer: Please recommend a movie based on my interests.Agent: Output: Sure, I can recommend a movie based on your interests. What ki..
[Study | OMEP] week 7: Prompt Engineering Guide영어 발표 스터디를 하고 있다. (참고로 OMEP: Oh My English Present 는 사실 내가 그냥 지은 이름이다.) 내 발표들을 다시 정리해두면 좋을 것 같아, 블로그에도 업로드한다. To do or not to do? Prompt: The following is an agent that recommends movies to a customer. DO NOT ASK FOR INTERESTS. DO NOT ASK FOR PERSONAL INFORMATION.Customer: Please recommend a movie based on my interests.Agent: Output: Sure, I can recommend a movie based on your interests. What ki..
2023.10.29 -
* 클라우드 컴퓨팅 과목을 수강하며 중간고사까지 배웠던 내용의 일부를 정리한 글입니다. 클라우드 컴퓨팅 개념의 탄생 존 매카시가 유틸리티 컴퓨팅을 제안함 → 1990년 중반까지 결과가 안나옴 레너드 클라인록: 집 사무실 어디서도 컴퓨터를 사용할 수 있을 것이다. 켈 올슨: 개인이 집마다 컴퓨터를 둘 필요가 없다. 클라우드 컴퓨팅 정의 클라우드는 존재를 인지할 수 있지만 실체를 확인할 수 없음: 손에 잡히지 않는다. 근데 인터넷으로 실체인 컴퓨팅 자원에 접근이 가능하며, 이 실체가 바로 컴퓨팅을 수행 | 최소한의 관리 노력과 (서비스 제공자와의) 상호작용을 통해 빠르게 제공되고 반환될 수 있는 (설정 가능한) 컴퓨팅 공유 자원 풀(네트워크, 서버, 스토리지, 응용, 서비스) 에 언제 어디서나 편리하게 온..
[클라우드 컴퓨팅] Intro* 클라우드 컴퓨팅 과목을 수강하며 중간고사까지 배웠던 내용의 일부를 정리한 글입니다. 클라우드 컴퓨팅 개념의 탄생 존 매카시가 유틸리티 컴퓨팅을 제안함 → 1990년 중반까지 결과가 안나옴 레너드 클라인록: 집 사무실 어디서도 컴퓨터를 사용할 수 있을 것이다. 켈 올슨: 개인이 집마다 컴퓨터를 둘 필요가 없다. 클라우드 컴퓨팅 정의 클라우드는 존재를 인지할 수 있지만 실체를 확인할 수 없음: 손에 잡히지 않는다. 근데 인터넷으로 실체인 컴퓨팅 자원에 접근이 가능하며, 이 실체가 바로 컴퓨팅을 수행 | 최소한의 관리 노력과 (서비스 제공자와의) 상호작용을 통해 빠르게 제공되고 반환될 수 있는 (설정 가능한) 컴퓨팅 공유 자원 풀(네트워크, 서버, 스토리지, 응용, 서비스) 에 언제 어디서나 편리하게 온..
2023.10.24 -
클라우드 컴퓨팅을 배우며, 가상화라는 단어가 얼마나 무서운 단어인지 깨닫게 되었다. 하드웨어, 네트워크 등 수많은 CS 지식을 아주 복잡하고 깊은 수준까지 연결하여 최종적으로 만들어 낸 산물 같은 느낌이다. 하지만 이번에 클라우드 컴퓨팅에서 다양한 내용을 접하며 가상화의 개념에 대해 0.000000000001프로 정도는 이해한 것 같다는 생각이 들어, 잊기 전에 이를 아주 쉽게 정리해보고자 한다. 아래는 아직 완전히 정리가 되지 않았다...! 가장 먼저, 가상화를 가능하게 하는 하이퍼바이저(Hypervisor), 하이퍼바이저에 의해 제어되며 각종 애플리케이션을 실행하기 위한 컴퓨팅 환경인 가상 머신(Virtual Machine, VM)으로 구성된다. 이때 중간에 위치한 MMU는 Memory Managem..
[Virtualization 101] 1. Introduction클라우드 컴퓨팅을 배우며, 가상화라는 단어가 얼마나 무서운 단어인지 깨닫게 되었다. 하드웨어, 네트워크 등 수많은 CS 지식을 아주 복잡하고 깊은 수준까지 연결하여 최종적으로 만들어 낸 산물 같은 느낌이다. 하지만 이번에 클라우드 컴퓨팅에서 다양한 내용을 접하며 가상화의 개념에 대해 0.000000000001프로 정도는 이해한 것 같다는 생각이 들어, 잊기 전에 이를 아주 쉽게 정리해보고자 한다. 아래는 아직 완전히 정리가 되지 않았다...! 가장 먼저, 가상화를 가능하게 하는 하이퍼바이저(Hypervisor), 하이퍼바이저에 의해 제어되며 각종 애플리케이션을 실행하기 위한 컴퓨팅 환경인 가상 머신(Virtual Machine, VM)으로 구성된다. 이때 중간에 위치한 MMU는 Memory Managem..
2023.10.17 -
2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 최종 코드 list = [] flag = 0 for i in range(9): list.append(int(input())) for i in range(8): for j in range(i + 1, 9): # print(f"sum(list) -> {sum(list)} list[i] + list[j] -> {list[i] + list[j]}") if sum(list) - (list[i] + list[j]) == 100: a = list[i] b = list[j] list...
[백준] 2309: 일곱 난쟁이2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 최종 코드 list = [] flag = 0 for i in range(9): list.append(int(input())) for i in range(8): for j in range(i + 1, 9): # print(f"sum(list) -> {sum(list)} list[i] + list[j] -> {list[i] + list[j]}") if sum(list) - (list[i] + list[j]) == 100: a = list[i] b = list[j] list...
2023.10.15 -
최종 코드 최종 코드는 아래와 같다. 에라토스테네스의 체를 활용해야 하는 문제였다. MAX = 1000000 # MAX = 1000 ansIndex = [1] * (MAX + 1) # 전체 index를 1(소수) 로 설정 for i in range(3, int(MAX ** 0.5) + 1, 2): # i를 3부터 시작하여 MAX의 제곱근까지, 홀수로 증가시키는 루프를 설정 if ansIndex[i] == 1: # 현재 숫자 i가 소수인지 확인 for j in range(i * 2, MAX, i): ansIndex[j] = 0 while True: k = int(input()) if k == 0: break for i in range(3, int(k / 2) + 1, 2): # 소수 i의 배수를 찾기 위한..
[백준] 6588: 골드바흐의 추측최종 코드 최종 코드는 아래와 같다. 에라토스테네스의 체를 활용해야 하는 문제였다. MAX = 1000000 # MAX = 1000 ansIndex = [1] * (MAX + 1) # 전체 index를 1(소수) 로 설정 for i in range(3, int(MAX ** 0.5) + 1, 2): # i를 3부터 시작하여 MAX의 제곱근까지, 홀수로 증가시키는 루프를 설정 if ansIndex[i] == 1: # 현재 숫자 i가 소수인지 확인 for j in range(i * 2, MAX, i): ansIndex[j] = 0 while True: k = int(input()) if k == 0: break for i in range(3, int(k / 2) + 1, 2): # 소수 i의 배수를 찾기 위한..
2023.10.14 -
또다시 소수 구하기 문제였다. 소수의 조건인 1과 자기 자신으로만 나누어진다를 명심하고 풀이에 임했다. 풀이는 다음과 같다 풀이 1. 1은 소수가 아니다 (코드에서 num
[백준] 1929번: 소수 구하기또다시 소수 구하기 문제였다. 소수의 조건인 1과 자기 자신으로만 나누어진다를 명심하고 풀이에 임했다. 풀이는 다음과 같다 풀이 1. 1은 소수가 아니다 (코드에서 num
2023.10.14