[OS] Process & Thread [Program]하드디스크에 저장되어 있는 실행코드 [Process]프로그램을 실행해서 메모리상에 올린 것프로세스는 OS(자원관리자)로 부터 자원을 할당 받는 단위메모리를 할당 받는다.(Code, Data, Heap, Stack)- Code: 실행코드- Data: 전역변수, Static 변수- Heap: 동적할당 메모리- Stack: 함수콜, 지역변수, 복귀주소기본적으로 1개의 Thread를 가지고 있다. 멀티프로세스를 사용하게 되면, 실행중인 Process 변경 작업인 Context Switching에 비용이 많이 발생한다.이때 캐시메모리도 초기화해줘야 한다.(프로세스끼리 공유하는 자원이 하나도 없기 때문에) [Thread]스레드는 프로세스가 할당 받은 자원을 사..
정규화란? RDBMS에서 테이블간에 관계를 맺을 때 데이터 Redundancy를 최소화 하기 위해서 테이블을 쪼개는 작업을 의미한다. 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, 6NF가 있으며, 3NF가 되었으면 정규화 되었다고 의미한다. 하지만 실무에서는 대규모 데이터 처리시 성능(Performance)향상을 위해 정규화를 쓰지 않거나 낮은 수준의 정규화를 만족하는 경우가 많다. 1NF(원자값) 테이블에 있는 모든 속성의 도메인이 원자값으로만 되어 있는 유형, 반복되는 그룹속성은 테이블을 나눠준다. 2NF(부분함수 종속 제거) 기본키 2개 이상으로 구성되는 테이블에서 일부 속성에 대해서만 부분적으로 함수 종속인 것을 분리 부분함수 종속성을 제거해준다.(만약 기본키가 하나인 경우 2NF는 하..
[Redis?]NoSQL 데이터베이스 중 하나로 다양한 자료구조를 저장할 수 있습니다.In-memory라는 특성 때문에, MySQL과 같은 파일에 저장하는 데이터베이스보다10배 정도 빠른 성능을 가지고 있습니다. Redis를 express-session과 연결하여 사용하는데이렇게 사용하게 되면 서버를 재시작하더라도 세션을 유지할 수 있는 장점이 생깁니다. 커넥션 유지하고 불러오는데 적은바용(빠른 속도)이 들고, express 서버를 재시작해도 세션이 유지가 되는 장점이 있습니다. In-memory DB 이기 때문에 데이터를 보존하기 위해서,주기적으로 DB에 쓰거나, 명령어 마다 DB에 쓸 수도 있습니다. 또한 여러대의 서버에서 세션을 공유할 수 있습니다. ### scriptredis-serverredis..
[MobX?]Redux와 다른 종류의 프론트엔드 상태관리 도구이다.Redux가 함수형 아이디어라면, MobX는 반응형 아이디어를 선택했다.주로 React와 함께 사용한다. 반응형 패러다임의 핵심인, 옵저버 패턴을 사용하여, 상태를 Observable하게 관리할 수 있다.상태가 변화하면 Reaction 반응한다. @observer@observer로 ReactComponent를 감싼다. 그러면 Reaction에 반응해서 render를 수행한다. @observable 데코레이터를 사용하여 객체나 값들을 Observable하게 만든다.클래스 내부변수 앞에 데코레이터를 적거나, 클래스 자체를 감싸서 사용하는데이렇게 하게 되면 읽거나 쓰는 것을 모두 관찰하게 된다.이것은 Javascript의 객체 프로퍼티가 아닌,..
- MVC- MVVM- MVP- MVW
[NodeJS Server]- Single thread Event loop Internal thread pool- Internal thread pool -> async callback -> Event loop -> response- 사용하는 스레드가 적어서, 메모리를 적게 쓴다.- 요청이 Event loop에 차곡차곡 담기므로, 많은 사용자가 생겨도 대처하기 쉽다.- Blocking I/O 중에도 계속 새로운 작업이 가능하다.- CPU 작업이 많은 경우 적절하지 않다. [Java Server]- Multi thread pool- Non I/O blocking: thread -> response- I/O blocking: thread -> response- 사용하는 스레드가 많아서, 메모리를 많이 차지한다..
[Data Structure][Stack]FILO(First Input Last Out): 첫번째 들어온놈이 나중에 나간다는 뜻 - 동전지갑함수호출시 함수 콜이 쌓일 때 사용한다. (함수의 지역변수) 함수는 기본적으로 특정 값들을 인자로 받아, 연산을 하고 결과 값을 return 하는데,자신을 호출한 곳으로 결과를 돌려준다. Process를 이루는 Stack 메모리는 제한된 크기의 메모리를 사용하므로 너무 많은 함수 호출이 발생하여 메모리를 넘어갈 경우 StackOverflow가 발생한다.재귀함수를 사용하면 함수가 쌓이는 것을 쉽게 확인할 수 있다.높은 주소에서 낮은 주소로 쌓아나간다. [Heap]FIFO(First Input First Out): 첫번째 들어온놈이 첫번째로 나간다. - Queue와 비슷..
[Arrow function]Arrow function 을 선언하면, 선언한 scope의 context가 자동으로 binding 된다.짧게 사용할 수 있으며, callback을 전달해야되는 상황(this 바인딩이 필요)에 좋다. [bind / apply / call]- bind: context와 argument를 매핑하여 전달할 수 있다.- apply: context를 변경하고, argument(array)를 넣어 실행한다.- call: context를 변경하고, argument(...array)를 넣어 실행한다. [Destructuring]객체 나열: ...object, ...array [Array]- 기존 array 영향 - splice(start, deleteCount, insertArray) - ..
[Redux 가 어떻게 나온거지?]Redux가 어떻게 나오게 되었을까?Redux는 React에서만 써야 하는 도구는 아니다. 하지만 리액트와 잘어울린다. Redux는 data-state와 UI-state를 관리해주는 상태관리 도구이다.React는 parent-child로 UI를 구성하고, 데이터 흐름도 부모에서 자식으로 단방향이다. child 가 parent를 변경하려면, parent로 부터 callback을 주입받아야 한다.바로 밑에 자식이면 상관 없지만, 깊은 하위 자식이라면 그 자식까지 전달해줘야 하므로중간에 필요없는 컴포넌트까지 props를 공유하게 된다. parent-child 관계로만 어려울때, 글로벌 이벤트를 통해서 관리하는 방법인 flux 패턴을 사용한다.flux 패턴에서는 action, ..
[React를 왜 사용하는가?]우리는 왜 리액트를 사용해야만 할까?웹사이트를 보면 전체적인 틀은 대부분 동일하고 내부에 콘텐츠만 변경되는 경우가 많다.이런 경우에 전체를 다시 그리지 않고 내부에 콘텐츠 영역만 다른 것으로 바꿔주면 다시 그려줘야 할 영역이 감소하므로 성능이 향상된다. 이렇게 나오게 된 녀석이 SPA(Single Page Application)이다.서버에 페이지를 새롭게 요청하지 않고 화면을 그리기 때문에 빠르다.(하지만 새롭게 요청이 필요하지 않은 정적인 페이지에서는 SPA로 구성하지 않는 편이 비교적 빠르다.) 여기에 추가적으로,SPA에서는 관리해야할 DOM이 많아지고, 각 DOM마다 상태를 각각 컨트롤 해줘야 한다.많은 DOM 요소들과 상태를 각각 관리하는 것은 귀찮은 일이다. 그래서..
[CSS] padding-top: *% 일하다가 알게된 꿀팁입니다.padding-top: *% 인데요, 세로값이 크게 중요하지 않는 DOM에 세팅하는 값입니다.가로의 비율을 가져와서 사용할 수 있어서 유용하네요 ㅎ.ㅎ Syntax/* values */ padding-top: 0.5em; padding-top: 0; padding-top: 2cm; /* value */ padding-top: 10%; /* Global values */ padding-top: inherit; padding-top: initial; padding-top: unset;The padding-top property is specified as a single value chosen from the list below. Unlike..
[DB] Mongo 필수 SQL 메모요즘 심심해서 개인 프로젝트를 하는중인데, MongoDB를 사용합니다. 지금까지 MySQL, MSSQL, Oracle 만 썼기 때문에, NoSQL은 처음인데요.(예전에 책으로 공부하긴 했는데 실제로 써보기는 처음..) 몇가지 기본으로 사용하는 명령어를 메모해두려고 합니다.저절로 습득되기 전까지 계속 찾아봐야 해서요.한번에 찾을 수 있도록 메모합니다. ------------------------------------------------------------------ [구조]DataBaseTable: CollectionTuple or Row: DocumentColumn: Key or FieldJoin: Embedded DocumentsPrimary Key(_id) [설..
[JS] express + postman: POST req.body empty POST 메소드 사용할때 req.body 가 비어져서 전달되는 경우가 있습니다.express에서 post 요청을 받으려면 몇가지 설정을 해야됩니다. - postmon 에서 "X-www-form-urlencoded" 설정하기 - body-parser express에 적용하기var express = require('express'); var app = express(); var bodyParser = require('body-parser'); // configure the app to use bodyParser() app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyP..
[JS] JSON.stringify 사용시 toJSON() 주의하기 JSON.stringify 사용시 JSON 형태로 바꿀 object가 toJSON 메소드를 정의해서 사용하는 경우, 그 메소드가 대신 불려서 (만약 toJSON() 메소드가 대신 불린다는 사실을 몰랐을 경우) 기대한 결과와 다른 결과 값 때문에 고생할 수 있습니다. 그러므로 toJSON() 메소드를 사용할 때는 항상, JSON.stringify 에 영향을 줄 수 있다는 사실을 염두해서 사용해야합니다. --------------------------------------------------------------------------------------------------------------------------------------..
singleton 이란,객체지향에서 클래스를 통해서 여러 개의 객체 인스턴스를 생성할 수 있는데,여러 개의 객체를 만들 필요 없이 하나의 객체만 생성하고 그것을 계속 사용할 경우에 사용하는 디자인 패턴입니다. 주로 객체들이 커뮤니케이션을 할 때, 객체들 사이에서 중개자 역할을 하는 객체를 singleton으로 생성합니다.(ex) Layer, Manager 등등... const singleton = (() => { var singletons = {}; return { get: function (klass){ if (singletons[klass] === undefined) { singletons[klass] = new klass(_.without(arguments, klass)); } return sing..
[Git] 기본설정하기 (git config) git을 사용할때 처음에 세팅해주면 유용한 것들 있습니다. 명령어를 축약해서 간단한 명령어로 사용하거나, 아이디/패스워드를 입력하면 특정시간동안 세션(?)을 유지하도록 할 수 있습니다. 제가 사용하는 몇가지 config 값들을 정리했습니다. git config --list git config --global credential.helper osxkeychain git config --global credential.helper 'cache --timeout 7200' git config --global init.defaultbranch main git config --global init.templatedir ~/.git-templates git config..
[Git] 커밋 히스토리 조회하기 커밋 목록을 보고싶을 때 주로,git log커밋 내용들을 볼 수 있다. 이때 내용 확인 뿐 아니라,어떤 내용을 수정했는지 확인하고 싶다면,git log -p줄 단위로 수정사항을 확인할 수 있다. 만약 긴 줄에서 수정된 내용이 짧다면,git log -p --word-diff단어 단위로 수정사항을 확인할 수 있다.. 최근 몇번째 커밋로그만 확인하고 싶다면,git log -p --word-diff -3최근 3번째 커밋로그까지 변경된 사항을 단어 단위로 보여준다. 변경된 줄 수를 확인 하고 싶다면,git log --stat어떤 파일이 얼마나 변경했는지 확인할 수 있다. [출처] https://git-scm.com/book/ko/v1/Git%EC%9D%98-%EA%B8%B0%EC..
[Git] remote: Repository not found. fatal: repository 'URL'' not found 위와 같은 에러를 만난다면,터미널에 아래 코드로 원격저장소의 URI를 변경해서 해결할 수 있다. git remote set-url origin http://{githubId}@URL git remote remove origingit remote add origin http://{githubId}@URL
- Total
- Today
- Yesterday
- 테슬라 레퍼럴
- 팔로워 수 세기
- Kluge
- Bot
- 테슬라 리퍼럴 코드 혜택
- 테슬라
- wlw
- 모델 Y 레퍼럴
- 책그림
- 모델y
- 메디파크 내과 전문의 의학박사 김영수
- 할인
- COUNT
- 테슬라 레퍼럴 코드 확인
- 테슬라 크레딧 사용
- 테슬라 레퍼럴 적용 확인
- follower
- 어떻게 능력을 보여줄 것인가?
- 김달
- 유투브
- 레퍼럴
- 테슬라 리퍼럴 코드
- 개리마커스
- 연애학개론
- 인스타그램
- 테슬라 리퍼럴 코드 생성
- 클루지
- 테슬라 추천
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |