일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 알고풀자
- JWT
- 파이썬서버
- 언리얼
- 스터디
- 게임개발
- 데이터베이스
- 으
- Enhanced Input System
- VUE
- 프린세스메이커
- 프메
- 언리얼프로그래머
- 언리얼뮤지컬
- 마인크래프트뮤지컬
- Ajax
- Express
- 카렌
- R
- 레베카
- EnhancedInput
- 정글사관학교
- Unseen
- flask
- node
- 디자드
- Jinja2
- 스마일게이트
- Bootstrap4
- 미니프로젝트
- Today
- Total
목록Computer Science (61)
Today, I will

들어가며 안녕하세요! flyduckdev입니다. 오늘은 mongodb를 compass free 가격으로 다뤄보는 튜토리얼 과정을 블로그에 남기려고 합니다. 순서는 몽고 db 시작을 위한 세팅, compass 에서 몽고디비 명령어 다루기, 관계형디비와 몽고디비의 차이점 순서대로 작성됩니다. 편의상 '~ㄴ다'로 말을 줄이고 바로 포스팅 시작해보도록 하겠습니다. 파트1 몽고 DB 세팅 1. https://www.mongodb.com/ MongoDB: The Developer Data Platform Get your ideas to market faster with a developer data platform built on the leading modern database. MongoDB makes work..

1. SQL 모든 서버 프로그램은 SQL문을 실행시킬 수 있게끔, 제공 해준다. 사용자가 뷰에서 카테고리를 생성하겠다고 입력하고 생성버튼 누르면 필요한 데이터를 서버로 보내게 될 것이고, 서버에서는 클라이언트에서 전송한 데이터를 받아서 내부적으로는 아래서 배우게될 sql문을 실행해서 클라에서 던져준 값들을 매핑해서 테이블에 넣으면 데이터베이스에 등록된다. 따라서 모든 쿼리문은 nodeJs나 Java에서 쓸 수 있는 것이다. 정말 어려운 프로젝트(통계 시스템 구축 같은 경우는, 100~200줄 기본)에서는 데이터 하나 조회하는데 쿼리문을 천줄 짜야할 수도 있다! 특히 Select 쿼리문은 잘못 짜면 1분 만에 조회할 수 있는 것을 찾는데 몇십분이 걸릴 수도 있다. 그러나 사실 통계 시스템같은 것이 아닌 이..

1. Schemas 만들기 Schemas는 데이터베이스의 구분이다. 관련있는 시스템 테이블(엑셀의 표와 같은 역할)끼리 묶어놓은 단위이다. 자바나 노드에서 데이터베이스에 접근을 할 때, 스키마 별로 권한을 줄 수 있다. ex ) '어떤 자바프로그램(시스템)은 a라는 스키마에만 접근이 가능하다.' 스키마는 한 마디로 생각하면 데이터베이스를 시스템 별로 구분 짓는 것이라고 생각하면 된다. 그리고 스키마 별로 관련있는 테이블들을 관리할 수 있다. utf8로 설정 : 모든 언어를 다 담을 수 있음 utf8_general_ci 모두 apply 해주면 스키마가 생성된다. 2. 데이타베이스의 Table 어떤 테이블이 먼저 생성되어야 하는지 생각을 하고, 순차적으로 만들어야 한다. 가령, 제품 테이블을 만들기 전에 제..
1. Queue 개념과 구현 Queue는 시간 순서상 먼저 저장한 데이터가 먼저 출력되는 선입선출 FIFO(First In First Out) 형식으로 데이터를 저장하는 자료구조입니다. queue의 rear에 데이터를 추가하는 것을 enqueue라고 합니다. 또한 queue의 front에서 데이터를 꺼내는 것을 dequeue라고 합니다. 더블링크드리스트를 파이썬으로 아래와 같이 구현해보았습니다.(직접 구현한 것이므로 버그가 있다면 지적 부탁드립니다.) Array list로 구현한 큐는 선출할 때, O(n)의 시간복잡도가 걸리므로(배열 길이만큼 한칸씩 앞으로 땡겨주어야 함) O(1)로 처리가능한 링크드리스트로 구현하는 것이 좋습니다.(head 값만 바꿔주면 됨) class Node: def __init_..

* 이론을 토대로 직접 구현한 것이므로 버그가 발생할 수 있습니다. 버그 발생시 댓글 남겨주시면 감사하겠습니다. 1. 물리적 비연속적, 논리적 연속적 Linked List는 Node라는 구조체가 연결되는 형식으로 데이터를 저장하는 자료구조입니다. 각각의 요소(Node)가 데이터 값과 다음 요소를 가리키는 포인터(next node의 주소값)로 구성된 자료구조입니다. 각 Node들은 데이터를 저장할 뿐 아니라, next node의 addr 정보도 가지고 있기 때문에 논리적으로 연속성을 유지하면서 연결될 수 있습니다. Array의 경우 연속성을 유지하기 위해 메모리 상에서 순차적으로 데이터를 저장하는 방식을 사용하였지만, Linked lsit에는 메모리상에서 연속성을 유지하지 않아도 되기 때문에 메모리 사용이..

1. List 자료구조 vs Set 자료구조 Set과 List는 둘 다 선형자료구조이지만 중요한 차이점이 있습니다. (1) 중복된 요소 (2) 순서가 있는/없는 (3) 인덱스 기반 접근 (1) 중복 요소 - Set은 중복된 요소를 허용하지 않습니다. 각 요소는 유일해야 합니다. - List는 중복된 요소를 허용합니다. 동일한 요소가 여러 번 포함될 수 있습니다. (2) 순서 - Set은 인덱스 순서가 보장되지 않습니다. [1,2,3],[2,1,3], [3,1,2]가 각 인덱스와 값이 달라도 set에 들어가면 [1,2,3]으로 동일한 자료구조가 됩니다. 각 요소가 어떤 순서로 들어오든 상관없이 하나씩 존재한다는 점에서 모두 같은 set이 되는 것입니다. 요소들의 순서는 구현에 따라 다를 수 있습니다. - ..

1. gdb를 통한 Project 3 추적 프로젝트3 VIRTUAL MEMORY부터는 본격적으로 gdb를 활용해서 코드파악을 하였습니다. 본 포스팅은 프로젝트2때와 다르게 vm일 경우 lazy_load_segment까지 도달하는 일련의 과정이 있어, 디버깅을 찍어보면서 추적한 기록을 남기는 포스팅입니다. pintos --gdb -m 20 --fs-disk=10 -p tests/userprog/args-multiple:args-multiple --swap-disk=4 -- -q -f run 'args-multiple some arguments for you!' 위와 같은 명령어를 통해 Pintos 운영 체제를 가상 머신(VM) 상에서 테스트하였습니다. --gdb 옵션: Pintos를 GDB 디버거와 함께 ..

pintos --gdb -m 20 --fs-disk=10 -p tests/userprog/halt:halt --swap-disk=4 -- -q -f run halt 혹은, pintos --gdb -m 20 --fs-disk=10 -p tests/userprog/args-multiple:args-multiple --swap-disk=4 -- -q -f run 'args-multiple some arguments for you!' gdb kernel.o (gdb) target remote localhost:1234 😃 개별 테스트 결과 확인 : 개별 테스트 예시1 : make tests/vm/mmap-clean.result VERBOSE=1 개별 테스트 예시2: make tests/userprog/args-..

목차 - (1) 유저영역 커널영역 - (2) 유저모드 커널모드 - (3) 유저레벨쓰레드 커널레벨쓰레드 - (4) 유저스택 커널스택 * 핀토스 프로젝트1,2에 임하면서 작성했던 WIL에서 헷갈렸던 유저단, 커널단 개념들만 따로 정리해둔 포스팅입니다. (1) 유저영역 커널영역 유저 영역 : 프로그램이 동작하기 위해 사용되는 메모리 공간 → 스택 영역, 힙 영역, 데이터 영역, 코드 영역 커널 영역 : 운영체제를 실행시키기 위해서 필요한 메모리 공간, 메모리에서 유저 영역을 제외한 영역 커널이 위치함 + 커널 : 운영체제의 핵심부로 컴퓨터 자원(CPU, 메모리, 파일 등)들을 관리함 → 메모리에 상주하는 운영체제의 부분 = 커널 커널은 컴퓨터 자원을 관리하며 사용자와의 상호작용을 하지 않음 (2) 유저모드..

시스템 콜(System Call) Argument Passing에서 pintos의 커맨드라인에서 인자를 파싱하고 패싱할 수 있도록 구현을 했다지만 우리의 project2 핀토스에서는 아직 시스템콜 핸들러와 각 시스템 콜에 대한 처리가 구현되어 있지 않기 때문에 시스템콜이 호출되지 않습니다! 따라서 응용프로그램을 사용자의 기대대로 쓰고, 읽고, 실행하는 등의 일련의 작업을 할 수 없습니다. 사용자모드, 커널모드, 인터럽트, 시스템 콜의 관계 운영체제에는 사용자 모드(User mode)와 커널 모드(Kernel mode)가 있는데 사용자 모드에서 자원에 대한 직접적인 접근을 할 수 없습니다. 반면에 커널모드는 컴퓨터의 모든 자원에 대한 접근 권한을 가집니다. 따라서 사용자 프로세스가 디스크 읽기와 같은 명령..