본문 바로가기

분류 전체보기

(100)
MYSQL TIMESTAMP UNIX_TIMESTAMP() 1970년 1월 1일 UTC+0일 때부터 현재까지 흐른 시간이 몇 초인지를 리턴한다. 인자값으로 date, datetime, or timestamp string, or a number in YYMMDD, YYMMDDHHMMSS, YYYYMMDD, or YYYYMMDDHHMMSS format형태를 받을 수 있다. FROM_UNIXTIME( ) 정수값의 시간을 datetime형태로 반환한다. 어떤 기준 컬럼을 5분간격으로 데이터를 얻고 싶을 때 다음과 같은 방법을 이용한다. SELECT UNIX_TIMESTAMP(t.컬럼명) AS dataNum, FLOOR(UNIX_TIMESTAMP(t.컬럼명)/ (60*5) ) AS calNum, FLOOR(UNIX_TIMESTAMP(t.컬럼..
ES6 관련 정리 ES6(ECMA Script) : 간단히 말해 JavaScript 언어의 표준. ECMA라는 기관이 만든 script언어로 ECMA-262표준을 따른다. 버전 ECMAScript 5 (=ES5) ECMAScript2015(=ES6) -> 중요한 기능들 이 대거 추가됨. ECMAScript 2020 (최신판) javascript module (import, export) 스크립트 크기 증가/ 기능 복잡해지면서 파일을 여러 개로 분리하는 모듈 개념이 등장하였다. 지시자 Import, export를 사용해서 다른 모듈을 불러와 모듈안에 있는 함수를 호출이 가능해지게 되었다. Export는 내보내기 / import는 가져오기 예시 //sayHi.js export function sayHi(user){ Alert..
Virtual Memory Demand Paging - virtual memory는 이전 메모리관리와는 다르게 운영체제가 관리한다. - 실제 필요할 때 page를 메모리에 올리는 것을 말한다. 이는 필요한 부분만 올리기 때문에 I/O양이 감소하고 memory 사용량이 감소하며 빠른 응답시간을 제공한다. - valid / invalid bit의 사용 * invalid bit의 의미: 사용되지 않는 주소 / swap out되어서 물리적인 주소에 없는 경우 - 만약 요청이 들어왔는데 invalid bit이 set되어 있으면 page fault가 걸린다.(운영체제에 넘어가는 경우) disk I/O작업은 오래 걸리기 때문에 cpu를 preempt당하는 것이다. page fault를 처리할 때 사용될 알고리즘 1. optimal algori..
Memory Management4 segmentation이 의미단위로 쪼개져 있기 때문에 paging기법보다 protection이나 share측면에서 더 효율적이라고 할 수 있다. 또한 메모리를 차지하는 용량도 더 적다고 할 수 있다. 그러나 allocation문제가 생길 수 있다. cpu가 보는 논리적 주소를 연속할당 / 불연속할당 기법으로 프로세스를 할당하여 물리적 주소로 변환하는 과정에서 mmu와 같은 하드웨어가 필요할 뿐 실제 운영체제가 관여하는 부분은 없다. 프로세스가 cpu에게 하드웨어 장치를 통해 메모리의 물리적 주소를 넘겨 instruction을 전달할 때, 운영체제모드로 변경되는 과정은 불필요하기 때문이다.
Memory Management3 메모리 영역관련 정리글 https://box0830.tistory.com/150 메모리 영역(Code, Data, Heap, Stack) 이게 매번 헷갈려서 확실히 정리를 할 필요가 있겠네요. 프로세스가 차지하고 있는 메모리를 살펴보면 크게 Code, Data, Heap, Stack의 영역으로 나누어져 있습니다. 이들 각각을 segment라 불러요. - 메 box0830.tistory.com page table에 엔트리마다 논리적 주소가 저장된 것 뿐만 아니라 valid/ invalid bit도 저장되어 있다. page table에는 존재하지 않는 page6,7번의 엔트리가 있다. 엔트리 개수는 프로그램이 최대로 가질 수 있는 사이즈만큼 만들어져야 한다. 때문에 사용되지 않는 6,7번 엔트리는 inval..
버전에 대한 개념 프로그램 개발 후 완성 결과물을 최종 사용자에게 전달하는 과정을 배포라고 한다. 배포하기 위해선 코드를 정리하는 작업들이 추가로 필요한데 테스트 메시지나 불필요한 주석들이 이에 해당된다. 정리 작업은 작게나마 코드 용량을 줄이는 효과가 있다. 과거에는 CD나 USB에 담아 배포하였지만, 요즘에는 온라인으로 배포하기 때문에 물리적 생산 비용이나 유통비용이 들지 않는다. 빠르게 배포할 수 있게 되면서 코드를 안정적으로 유지하고 테스트하는 과정이 중요해졌다. 배포한 이후에도 코드를 수정해야 하는 일은 필요하고, 해당 코드를 식별해서 확인하기 위해서는 버전관리가 필요하다. ex) 2.1.4 첫번째 자리: major버전 두번째 자리: minor번호로 메이저버전에서 기능 추가나 변경 사항이 있을 때 바뀐다. 세번째..
git 병합 git branch --merged //브랜치 병합 여부 확인 깃에서 사용되는 병합 방식에는 두가지가 있다. fast forward병합과 3-way병합이다. 전자는 주로 순차적으로 커밋한 경우 한 줄로 병합하는 것을 의미한다. 주로 혼자 작업할 경우 이 병합이 사용된다. 반면 후자는 여러 사람과 작업하는 경우 기준 커밋을 기점으로 서로 다른 브랜치의 커밋들이 연결되어 복잡하다. 그림을 보면 이해가 쉽다. 1. fast-forward병합 master브런치에서 develop브런치가 분기한 이후 master에는 더 이상의 커밋이 없고 순차적으로 커밋된 경우, master브런치에서 merge하면 fast-forward병합이 이루어 진다. 2. 3-way 병합 공통 조상인 base커밋을 기점으로 병합 커밋을 하나..
git stash(임시 처리) 만약 a라는 브랜치에서 작업을 하고 있는데 완료되지 않은 상황에서(수정만 하고 커밋하지 않은 상태) 다른 버그가 발생해서 수정 작업이 필요하다면 브런치 이동이 필요할 것이다. 그러나 수정작업을 커밋하여 워킹 디렉토리를 정리하지 않으면 브런치 이동이 되지 않는다. 이때 임시로 작업 내용을 저장하는 stash기능이 있다. stash는 stack 형태로 저장되기 때문에 저장된 내용을 pop하거나 stash에 저장한 채로 불러오는 apply를 사용할 수 있다. git stash git stash save "메시지" git stash branch test // test라는 브랜치에 stash할 수 있음. git stash list //스태시 목록 확인 stash는 stack구조이기 때문에 stash@{번호}형태로..