profile
Quit talking, Begin doing
태그 목록
전체보기 (78)django(10)Crawling(7)WeCode(7)위코드(7)scraping(6)python(5)Database(5)Spring(4)web(4)ORM(4)Java(4)뮤텍스(3)ManyToMany(3)C(3)csv(3)Proxy(3)git(3)OneToOne(3)modeling(3)mysql(3)Flask(3)decorator(3)JWT(3)node.js(2)service(2)nosql(2)알고리즘(2)http(2)linux(2)log-in(2)model(2)relation(2)데코레이터 패턴(2)로그아웃(2)세마포어(2)logging(2)Sequelize(2)sign-in(2)project(2)Web Scraping(2)프록시 패턴(2)redis(2)Design Pattern(2)OneToMany(2)sql(2)stack(2)Token(2)mac(2)mutex(2)로깅(2)복호화(1)점이력(1)동기화(1)agile(1)scrum(1)호이스팅(1)order(1)S3(1)Linker(1)process(1)해시(1)heap(1)정적(1)Request(1)Response(1)동적 프록시(1)Mutual Exclusive(1)nodejs(1)tig(1)path(1)(1)initial setting(1)free(1)peterson's solution(1)boto3(1)stdin(1)Module(1)freeze(1)pillow(1)MVC(1)development(1)역페이지 테이블(1)structure(1)재귀호출(1)http통신(1)단일 책임 원치(1)JOIN(1)콜백 패턴(1)함수표현식(1)pyjwt(1)View(1)bash(1)비크립트(1)class(1)network(1)branch(1)printf(1)JavaScript(1)pagination(1)cart(1)동적(1)dictionary(1)함수포인터(1)socket(1)BeanPostProcessor(1)method(1)Backend(1)offset(1)쇠막대기(1)프록시(1)query(1)reculsive(1)molloc(1)IO(1)hoisting(1)url parameter(1)Hashing(1)ec2(1)feature(1)https(1)Node(1)systemctl(1)가비지콜렉터(1)size_t(1)Paging(1)msa(1)aop(1)loop(1)relational(1)bcrypt(1)social(1)bulk_create(1)context(1)이분검색(1)장바구니(1)virtual env(1)재귀함수(1)Spin Lock(1)authorization(1)Demand Paging(1)architecture(1)synchronized(1)self(1)pointer(1)Preprocessor(1)monitor(1)update(1)CSS(1)함수선언(1)Strategy(1)html(1)single responsbility(1)스핀락(1)주문(1)bin(1)conditional variable(1)추상 내부 클래스(1)logger(1)log(1)--force(1)프래임(1)memory(1)컴파일(1)페이지 테이블(1)v8(1)페이지 폴트(1)조건변수(1)data(1)상호배제(1)Table(1)암호화(1)management(1)재귀(1)master(1)algorithmn(1)gunicorn(1)sign-up(1)aws(1)template method pattern(1)github(1)app(1)객체지향(1)함수선언식(1)전략 패턴(1)subquery(1)모니터(1)hot fix(1)collector(1)LIMIT(1)2진수(1)systemd(1)binary(1)변수선언(1)garbage(1)virtual memory(1)스택(1)Critical Section(1)race condition(1)깃허브(1)선분이력(1)피터슨의 해결안(1)pandas(1)(1)data structure(1)해싱(1)save(1)이력관리(1)임계영역(1)google(1)static(1)underflow(1)로그(1)Auth(1)binary hacks(1)release(1)translation unit(1)요구 페이징(1)로그인(1)임계구역(1)프록시 팩토리(1)path parameter(1)JDK 동적 프록시(1)asynchronous(1)key-value(1)prefetch_related(1)non-relational(1)unit test(1)referencing(1)promise(1)test.py(1)terminal(1)TCP/IP(1)mysqldump(1)cglib(1)caching(1)GET(1)assembly(1)compile(1)프로그래머스(1)scala(1)페이지(1)develop(1)rebase(1)queryset(1)rds(1)

[비트 연산] 2진수를 활용한 여러가지 꼼수

이번 포스팅에서는 2진수의 특성과 비트연산을 활용해서 할수 있는 여러가지 프로그래밍적인 기법을 알아보겠다.성능을 위해서 실제로 우리가 작성한 코드를 컴파일러 수준에서 앞으로 배울 연산들로 바꿔주는 경우도 있다. 이렇게 2진수를 활용한 여러가지 꼼수(?)들을 사용해서 컴

어제
·
0개의 댓글

[메모리 관리] 가상 메모리

이번에는 운영체제의 메모리 관리의 핵심인 가상메모리에 대해서 알아보겠다.다음과 같은 상황을 상상해보자8GB 메모리에 실행파일 하나의 크기가 1GB인 파일이 20개가 실행중1GB크기의 프로세스가 20개면 20GB인데 어떻게 8GB메모리에서 실행가능할까?운영체제에서는 8G

2022년 6월 28일
·
0개의 댓글

[프로세스 동기화] 모니터

세마포어와 뮤텍스를 통해서 임계구역에 대해 상호배제를 통한 동기화를 알아보았다. 두개의 동기화 방법의 단점이라면 임계구역으로 들어가기전 wait(), 임계구역을 빠져나올때 signal 혹은 release를 해주는 등의 코드를 프로그래머가 직접 넣어주어야 하는것이다. 프

2022년 6월 25일
·
0개의 댓글

[프로세스 동기화] 세마포어

뮤텍스를 통한 프로세스 동기화에서 멀티코어 cpu인 경우 스핀락을 통해서 문맥교환 없이 스레드들은 뮤텍스 락을 얻기 위해 경합하고 임계구역에 접근하는 방법을 알아보았다. 하지만 cpu를 획득 하기 위해서 끊임없이 반복문을 실행하고 있는 바쁜대기(busy waiting

2022년 6월 24일
·
0개의 댓글

[프로세스 동기화] 뮤텍스

피터슨의 해결안은 이론적으로는 프로세스 동기화를 위한 3가지 조건을 만족하지만 연산의 하드웨어 구현상의 문제로 인해서 스레드들이 임계구역으로 접근하기 위한 권한을 얻는 과정에서 경합상황이 발생하게 되었다.이런 구현상의 한계는 운영체제를 디자인 할 때 부터 "임계구역으로

2022년 6월 24일
·
0개의 댓글

[프로세스 동기화] Peterson's Solution

프로세스의 동기화 이슈는 프로그래밍을 하면서 만나는 중요한 이슈다. 운영체제가 사용하는 프로세스 번호를 관리하는 전역변수 next_available_pid가 있다. 프로그램 실행 도중 프로세스A와 프로세스B가 생성되었다.두 프로세스는 우연히 비슷한 시기에 프로세스를 생

2022년 6월 23일
·
0개의 댓글

[AOP] 로그 기능 적용 : 빈 후처리기

동적프록시 적용 포스팅에서 config를 따로 만들어서 타겟에 동적프록시가 적용되도록하고 연관된 빈을 일일이 연결해줬다. 이렇게 동적 프록시를 적용하면 컨테이너의 컴포넌트 스캔 대상에 들어갈 수 없기 때문에 불편한 점이 있었다. 컴포넌트 스캔을 도중 빈이 컨테이너에 등

2022년 6월 12일
·
0개의 댓글

[AOP] 로그 기능 적용 : 동적 프록시

문제 인터페이스를 사용한 프록시 패턴을 사용하면서 프록시를 적용하고자 하는 클래스 개수 n개 만큼 로깅 코드를 계속 생성해야하는 문제가 있었다. 프록시를 적용하고자 하는 클래스마다 인터페이스와 프록시 구체클래스를 만들어줘야 했기 때문이다. 이 문제를 해결하기 위해 JD

2022년 6월 6일
·
0개의 댓글

[디자인 패턴, AOP] 로그 기능 적용 : 프록시 패턴

전략패턴을 통해서 로깅을 적용해서 비지니스 로직을 담당하는 클래스와 로깅(부가기능)을 담당하는 클래스를 분리할 수 있었지만 여전히 메인 기능에 해당하는 코드를 변경해야 하는 단점이 있었다. 이 문제를 해결하기 위해서 프록시 패턴을 사용해서 메인 기능의 수정 없이 요청

2022년 6월 6일
·
0개의 댓글

[디자인 패턴] 로그 기능 적용 : 전략 패턴

이전 포스팅에서 템플릿 메서드 패턴을 통해서 비지니스로직과 부가기능인 로깅을 분리했었다. 하지만 상속을 사용해서 결합도가 증가하고, 추상 내포클래스를 사용해서 가독성이 떨어지는 등의 문제가 있었다.이런 문제들을 해결하기 위해 콜백을 사용한 전략패턴을 통해서 로깅부분을

2022년 6월 5일
·
0개의 댓글

[디자인 패턴] 로그 기능 적용 : 템플릿 메서드 패턴

WAS서버에 요청이 들어왔다가 http response로 나가기까지 몇분이 걸리는지 측정해야하는 상황을 가정해보자.이런식으로 표시할 수 있다.단점이 있다면, 모든 기능의 비지니스 로직 전과 후에 시간을 찍어주는 기능을 넣어야 한다. 결국 이런식의 설계는 유지보수를 힘들

2022년 6월 4일
·
0개의 댓글

[알고리즘] 정수를 문자열로 출력하기

문자열 출력 함수에서 어떻게 매개변수로 넣은 정수형을 곧바로 문자열로 포매팅해서 출력할까?문자열 출력함수와 가변 매개변수에 대해서는 다른 포스팅에서 알아보도록 하고, 이번에는 어떻게 정수형의 데이터를 문자열로 출력하는지에 대해서 알아보겠다.우선 매개변수로 들어온 정수가

2022년 4월 9일
·
0개의 댓글

[포인터] 함수포인터 동작 원리

함수포인터의 작동원리를 이해하기 위해서는 컴파일의 과정을 먼저 이해해야 한다.clang 컴파일러는 4가지 단계를 거쳐 소스코드를 실행파일로 만든다. "컴파일"은 넓은 의미에서 이 과정을 포괄하는 말이다. 하지만 좁은 의미의 컴파일은 전처리 다음단계인 translatio

2022년 2월 21일
·
0개의 댓글

Why you get wrong with size_t negative loop?

This is my personal experience when I code a small game with C. What I thought for size_t is a simple and ideal type to break negative loop as it can

2022년 1월 14일
·
0개의 댓글

Algorithm : length of the shortest string

This posting is about the better way to solve the algorithmn problem in Leetcode there is a set of string as input > input : abcdabc and output wou

2021년 7월 25일
·
0개의 댓글

Node js 메모리 관리

node js 는 어떻게 메모리 관리를 하는지 알아보자V8엔진은 Javascript를 크롬브라우저에서 돌려주는 엔진이다. V8엔진은 Javascript를 assembly code로 컴파일해준다. node js는 V8엔진을 C++로 wrapping(?)해서 Operati

2021년 4월 23일
·
0개의 댓글

Static method VS Class method

정적 매서드와 클래스 매서드의 차이점에 대해서 알아보자. 우선 리눅스에서 어플리케이션이 빌드되고 프로세스가 어떻게 생겼는지 알아보자. 리눅스에서 하나의 프로세스는 4개의 영역을가진다 > DATA HEAP STACK TEXT DATA 빌드가 되고나면 가장 먼저 ST

2021년 4월 21일
·
0개의 댓글

Linux systemd 서비스 관리

node.js 프로젝트를 배포하면서 도커를 사용해서 node.js 서버를 빌드하기로 했다. 도커이미지 파일을 작성하던 중, 데이터베이스 연결이 되지 않은 상태서 서버를 listen하는 명령어를 실행하니 일정 간격으로 데이터베이스 매니저가 connection요청을 계속

2021년 4월 17일
·
0개의 댓글

TCP/IP networking and Web socket

Posting about web socket and real time networkingForwarding request in certain interval to server and get the data. We are not sure when the request a

2021년 4월 11일
·
0개의 댓글

How command works in Linux?

Currently I am studying on Operting System and came to understand how commands work in Linux terminal. Before we go, let us check out how Linux recei

2021년 3월 11일
·
0개의 댓글