목록분류 전체보기 (15)
poma33

큰 틀에서의 정의1. 프로세스는 간단하게 말해서 실행 중인 프로그램을 의미한다.(프로그램은 명령어들의 집합)2. 프로세스는 운영체제에서 프로그램을 실행하는 작업 단위를 의미한다. cc나 gcc 로 컴파일한 실행파일 (./a.out)은 그저 디스크에 저장되어 있는 수동적인 존재에 불과하다.파일 형태로 존재하고 있는 프로그램이 수행되기 위해서는 리눅스 커널로부터 CPU등의 자원을 할당 받을 수 있는 동적인 객체가 되어야 한다.이 동적인 객체가 바로 프로세스이다. 결국 프로세스는 동작중인 프로그램이며, 커널로부터 할당받은 자신만의 자원을 가지고, CPU가 기계어 명령들을 실행함에 따라 끊임없이 변화하는 동적인 존재이다.(-> 커널이 CPU라는 자원을 어느 프로세스에게 할당해 줄 것인가를 결정하는 작업을 스케..

수학적 귀납법 기초수학적 귀납법: 어떤 명제 $P(n)$이,(i) (basis step) $n = 1$일 때 참이고,(ii) (inductive step) $n = k$일 때 참이면 $n = k + 1$일 때도 참이면 주어진 $n$에 관한 명제는 모든 $n ≥ 1$에 대해 참이다. 강한 수학적 귀납법: 어떤 명제 $P(n)$이,(i) (basis step) $n = 1$일때 참이고,(ii) (inductive step) $n ≤ k$일 때 참이면 $n = k + 1$일 때도 참이면 주어진 $n$에 관한 명제는 모든 $n ≥ 1$에 대해 참이다. 수학적 귀납법이 그냥 바로 참은 아니고, 아래와 같은 공리를 가정해야 참입니다. Well-ordering 성질: 임의의 자연수 집합의 공집합 아닌 부분 집합은 항..
코드를 짜다 보면, 단순히 "잘 돌아가는지"를 확인하는 것만으로는 부족합니다.코드가 얼마나 효율적인지, 입력 크기가 커지면 성능이 어떻게 변하는지를 아는 것이 중요한데,이때 등장하는 것이 바로 빅오(Big $ O $) 표기법입니다. 빅오 표기법은 알고리즘의 성능을 수학적으로 분석하는 방법입니다.특정 알고리즘이 입력 크기 $ n $ 에 대해 얼마나 빠르게 실행되는지를 나타냅니다.즉, 실행시간이 증가하는 패턴을 예측하는 지표라고 할 수 있습니다. 함수인만큼 아래와 같이 수식을 넣어서 표기합니다.$ O(1) $$ O(33) $$ O(n) $$ O(n+m) $$ O(nm) $$ O(n^2) $$ O(nlogn) $$ O(k!) $등등.. 해당 표기법으로 성능은 어떻게 알 수 있을까요 빅오 표기법의 정의부터 알..

앵귤러로 프로젝트를 진행하던 중Chart.js 를 활용하여 그래프를 기리는 기능을 개발해야 했습니다.그러나 자꾸 에러가 나서 원인을 살펴보던 중Dom이 다 로드 되지 않고 createChart 함수를 실행하고 있었다는 것을 발견할 수 있었습니다. 예시 코드export class exampleComponent implemnets OnInit { @ViewChild('chart') chart: ElementRef; public chartView: any; ngOninit(): void { this.createChart(); } public createChart(): void { this.chartView = new Chart(this.chart..
mybatis로 쿼리문을 작성하던 중 LIKE 문에 무슨 짓을 해도 값이 안들어가는 오류를 만났습니다. 예시 코드 example.xml ... WHERE CONTENTS LIKE "%#{KEYWORD}%" 동적쿼리에서 LIKE 문은 다르게 사용해야하는 줄 모르고 일반 쿼리문 처럼 SQL을 작성했다가 동작하지 않아서 많은 시간을 날렸습니다. ... WHERE CONTENTS LIKE "%블라블라%" 이런식으로 SQL 문과 동일하게 작성했었는데, Mybatis에선 다른 방식으로 넣어야한다는 것을 찾았습니다. 예시 코드 example.xml ... WHERE CONTENTS LIKE CONCAT('%',#{KEYWORD},'%') 해결이 되셨나요? 제가 많은 시간을 헤매서... 도움이 됐으면 좋겠습니다 ㅎㅎ
테스트는 왜 해야하는가?"Too little testing is a crime, but too much testing is a sin"(너무 적은 테스트는 범죄지만, 너무 많은 테스트는 죄이다.)업무를 하면서 내가 개발자로 일을 하는 건지 테스터나 QA를 하고 있는건지 의문이 들 정도로 테스트를 하는 시간이 많다고 느껴져서 뭔가 잘못되었다는 걸 느낀 후테스트 코드와 테스트 방법론(?)에 대해서 공부해보았습니다. 우선 테스팅이 필요한 이유는 결함이 해결되지 않은 상태에서시스템이 운영 단계 또는 사용자 사용 단계로 넘어간다면장애가 발생하여 사용자들이 손실을 입고,나아가 회사 전체 비즈니스에 영향을 줄 수 있기 때문입니다.따라서 이를 방지하기 위해 테스팅을 꼭 해야만 합니다.테스트 코드를 작성 해야 하는 이유..
CORS란 무엇인가? Cross-Origin Resource Sharing(교차 출처 리소스 공유)의 약자로 브라우저에서 실행 중인 스크립트에서 시작되는 cross-origin HTTP 요청을 제한하는 브라우저 보안 기능입니다. 에러 발생 예시 기본적으로 CORS 관련 에러가 발생하면 서버에 Request 할 때 정상적인 데이터를 받아오지 못합니다. 이 때 브라우저 개발자 도구로 확인해보면 아래와 같은 에러 메시지가 나타납니다. 🚨 Access to fetch at ‘http://localhost:8080/’ from origin ‘http://localhost:8000’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header i..

학생 때 주로 React.js를 사용하며 프로젝트를 진행했는데취업 후 서비스 개발 시 Angular를 사용하고 있습니다. 처음 Angular를 접하게 되었을 땐 반감이 있었으나,쓸 수록 매우 뛰어난 프레임워크라는 것을 느낍니다. 제가 생각하는 Angular의 장점은 1. AngularJS 부터 이어진 Angular만의 아키텍쳐입니다.Angular의 아키텍처에서는 코드의 볼륨을 줄이는 다양한 도구들이 제공됩니다.적절하게 사용된다면 작은 단위의 코드를 만들어 이해하기 쉬운 코드를 작성할 수 있습니다. 2. Typescript의 강제성입니다.Typescript는 컴파일 시 코드의 안정성을 보장해줍니다. 그럼에도 불구하고 Angular 보다 Vue나 React를더욱 선호하는 이유는 무엇일까 궁금해져서 조사해보니..