본문 바로가기

전체 글82

[DB] 관계데이터모델, 키(key), 무결성 제약조건 을 요약 정리한 글입니다. 문제가 될 시 글을 내리도록 하겠습니다. 1. 관계데이터모델? 관계 데이터모델은 IBM 연구소에서 근무하던 수학자 에드가 코트 박사가 제안한 개념이다. 이는 수학의 집합 이론에 근거하고 있어 타모델에 비해 튼튼한 이론적 토대를 가지고 있고, 비절차적인 언어로 원하는 데이터를 쉽게 표현하는 장점이 있다. 대표적인 DBMS로는 Oracle, SQL Server, DB2, MySQL, PostgreSQL, SQLite 등이 있다. 용어정리 데이터모델에서 relation은 관계가 아닌 행과 열로 된 테이블이다. Schema은 관계데이터베이스의 relation(테이블)이 어떻게 구성되는지 어떤 정보를 담고 있는지에 대한 기본적인 구조를 정의한다. 스키마는 테이블의 첫 행인 헤더에 나타나.. 2023. 4. 2.
[DB] 데이터베이스 시스템이란? 을 요약 정리한 글입니다. 문제가 될 시 글을 내리도록 하겠습니다. DB를 다루면서 DB를 제대로 알지 못한다는 생각에 공부를 한번 해봐야겠다는 생각을 하였다. 때마침 함께 공부하던 동생이 같이 공부해보면 어떻겠냐는 제안을 주었고 흔쾌히 승낙했다. 덕분에 많은 것을 얻어간다. 교재의 내용을 정리한 것이지만 머릿속에 가지고 있어야 할 개념들을 기록해둔다. 데이터베이스 시스템 각 조직에서 사용하던 데이터를 모아서 서로 공유하고 생기는 장점을 이용하는 시스템으로, 데이터베이스, DBMS, 데이터 모델의 세가지로 구성된다. 거기에 더해서 추가적인 데이터베이스 언어, 데이터베이스 사용자도 데이터베이스의 일부(?)라고 볼 수 있다. 1) 데이터베이스, DBMS, 데이터모델 데이터베이스는 조직에 필요한 정보를 얻기 .. 2023. 4. 2.
[책] 타이탄의 도구들 _ 팀 페리스 팀 페리스가 여러 타이탄들을 인터뷰하면서 배울만한 것들을 엮어 놓은 글이다. 개인적으로도 따라할만한 것들이 있어 매일 혹은 주 단위로 실천을 해보고 있다. 인상깊게 읽었던 구절들을 몇가지 옮겨본다. epilogue 타이탄들의 성공 비결은 '담대한 목표와 그것을 돕는 디테일detail' 타이탄들은 작은 것에서 큰 기회를 찾아내는 남다른 루틴과 습관을 가지고 있다. 매일 아주 작은 것이라도 꼭 목표를 이루는 사람들이며, 매일 실패에서 배우는 사람들이다. 완벽한 천재와는 거리가 먼 사람들이며, 그들은 1등이 아닌 1등과 싸워 이기는 사람이었다. p.66 하지만 마크의 생각은 다르다. "당신이 뭔가를 팔아서 돈을 벌고자 하는 사람이라면 한 가지를 반드시 머릿속에 새겨야한다. '사람들이 내 제품을 사지 않는 건,.. 2023. 3. 18.
[OS] 메모리 관리 (메모리할당, 단편화, swapping, segmentation) 메모리에 대한 내용은 핀토스 때 다루었으나, 전체적인 큰 그림을 다시 한번 잡고 싶어서 스터디를 준비하며 다시 정리해본다. 1. 메인메모리 메인메모리와 레지스터는 CPU가 직접 접근할 수 있는 저장장치이다. 레지스터는 일반적으로 CPU의 one cycle에 CPU가 도달할 수 있지만, 메모리는 메모리 버스를 통한 데이터의 교환으로 여러 사이클이 소모된다. 속도적인 측면을 개선하고자 하드웨어의 일종인 cache가 고안되었다. 또한 OS를 유저프로그램의 접근으로부터 보호한다던가, 프로그램 별로 서로의 영역을 침범하지 않도록 하기 위해 하드웨어가 발명되었는데 대표적으로 base register와 limit register가 있다. 메모리 공간의 분리 (유저영역과 커널영역) 유저 메모리 공간과 OS 메모리 공간.. 2023. 3. 18.
[Java] 제어의 역전(IoC)과 의존관계 주입(DI) 김영한님의 Java 핵심원리를 다시 복습하며 제어의 역전과 의존관계 주입을 정리해본다. 결론부터 말하자면 제어의 역전은 프로그램의 제어흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것이다. 의존성 주입은 실행시점(런타임)에 외부에서 실제 구현객체를 생성하고 클라이언트에 전달해서 클라이언트와 서버의 실제 의존관계가 연결되는 것 IoC컨테이너 혹은 DI 컨테이너는 객체를 생성하고 관리하면서 의존관계를 연결해주는 것이다. (아래에서는 AppConfig) 확 와닿는 말은 아닌 것 같다. 코드를 보면서 하나씩 정리해보자 1. 제어의 역전 (Inversion of Control) 1) 변경 전 : DIP가 지켜지지 않음! 주문서비스 클라이언트 (OrderServiceImpl)은 추상인터페이스 뿐만 아니라 구체.. 2023. 3. 16.
[OS] Blocking, Non-blocking, Sync, Async 개념 (굳이 4등분?) 어떤 개념이든 정확하게 정의하고 규정하는 것이 필요하지만, block, non-block, sync, async는 보면 볼수록 헷갈리는 구석이 있다. block이 sync 같고 non-block이 async 같은데 찾아보면 찾아볼수록 개념이 혼재되어 있다는 생각이 많이 들었다. (그러면서도 정확히는 다르다고들 한다..) 그러던 와중 stackoverflow에서 발견한 comment 개념이 맥락에 따라 용어 자체가 똑같이 쓰일수도, 비슷하게 쓰일수도, 혹은 다르게 쓰일 수도 있으니 너무 무자르듯이 해당 개념을 쪼개기 보다는 이해는 하되 어느정도의 추상성은 유지한채 가는게 어떨까 라는 생각을 가지게 된 것 같다. 서론이 길었다. 밑에는 정리 Blocking blocking process request가 생기.. 2023. 3. 15.