Writing

작업 노트

기술 자체보다 어떤 문제를 왜 그렇게 풀었는지에 초점을 둡니다.

코드스피츠73 part5_2(BLOCK, NONBLOCK)

코드스피츠73 part5 BLOCK, NONBLOCK BLOCKING EVASION NONBLOCKING 서브루틴이 즉시플로우 제어권을 내놓는것 SYNC, ASYNC 병행성 프로그래밍에 익숙해져야 된다. SYNC 서브루틴이 즉시값을 반환함 block 즉시 플로우 제어권을 반환하지 않음 non block즉시플로우제어권을반환

3 min read

코드스피츠73 part5_1(BLOCK, NONBLOCK)

코드스피츠73 part5 BLOCK, NONBLOCK FLOW IS BLOCKING 프로그램이 실행되면 도중에 멈춰지지 않고 끝까지 실행됨 BLOCKING FUNCTION 점유하는 시간 만큼 블록을 일으키는 함수 배열순회, 정렬 배열크기에따라 DOM순회 DOM의하위구조에따라 이미지프로세싱 이미지크기에따라 BLOCKING

3 min read

ALTER TABLE ADD PARTITION 시에 장애

ALTER TABLE ADD PARTITION 시에 장애 운영중인 시스템에서 mariadb를 사용 파티션 ADD 시에 ADD 프로세스가 문제가 생겨 테이블 락이 걸려서 해당 테이블을 사용하는 서비스에서 쓰레드가 밀리고 있었다. 여기서 궁금증이 나왔다. 파티션 add/drop 시에 테이블 락이 걸려야 되냐? 실제 파티셔닝을

3 min read

마리아 DB 교체후 장애 사항 대처

마리아 DB 교체후 장애 사항 대처 운영중인 시스템에서 mariadb를 사용하고 있는데 디스크가 98%까지 찼다, 예상은 하고 있었는데 차주 화요일로 교체시기를 예상하고 있었지만 주말에 디스크 확보를 보장하기 어려워 바로 교체하는 작업을 했다. 교체이후에 문제가 없는줄 알고 있던 시스템에서 하나씩 장애가 발생하기 시작했다

3 min read

GCE_TIMEZONE

GCE TIMEZONE sql을 사용했는데 select now() 시간이 한국 시간이 아니였다 해당 설정은 sql 설정에 들어가서 수정을 누른 다음 데이터베이스 플래그 추가에 default time zone 설정을 +09:00 항목을 추가했다. 또 서버 인스턴스에서도 타임존이 맞지 않아 rdate를 이용해서 맞출려고 했지

1 min read

POP_part26(법칙 - 프로그래밍 안티패턴)

법칙 프로그래밍 안티패턴 깨진 유리창 법칙 빌딩같은 건물에 수리되지 않은 깨진 유리창이 한 장이라도 있다면, 사람들은 빌딩 주인이 자기 건물에 관심이 없는줄 안다. 이렇게 되면 곧 다른 유리창도 깨진다. 그리고 건물 전체에 심각한 파손이 일어난다. 소프트웨어도 똑같은 현상이 일어난다. 소프트웨어에서 깨진 유리창 즉 나쁜

7 min read

POP_part25(법칙 - 프로그래밍 안티패턴)

법칙 프로그래밍 안티패턴 브룩스 법칙 일정이 늦어지고 있는 소프트웨어 개발 프로젝트에서 지연을 만회하기 위해 후반에 사람을 추가하면 오히려 지연이 한층 더초래 된다. 맨먼스(man month)로 프로젝트 일정을 환산하는데 man과 month는 교환 불가능이다. 이유는 다음과 같다. 종속 관계에 따른 오버헤드가 발생한다.

4 min read

POP_part24(관점 - 프로그래머가 보는 시각)

관점 프로그래머가 보는 시각 개밥먹기 자신이 개발한 소프트웨어를 직접 사용해 봐야 된다.이렇게 되면 사용자의 관점을 얻을수 있다. 본인이 사용해서 편리함을 증명해야된다. 고무오리 디버깅 기법이다. 발생한 문제를 누구한테 설명하므로써 문제의 원인을 스스로 깨닫고 자체 해결할수있다.자체 해결을 촉진한다. 무생물에게 먼저 적용

4 min read

POP_part23(관점 - 프로그래머가 보는 시각)

관점 프로그래머가 보는 시각 계약에 의한 설계 함수와 함수를 호출하는 쪽이 서로 계약을 맺고 있다고 간주하고 프로그래밍 하는것을 가리켜 계약에 의한 설계라고 한다. 계약한 내용을 미리 함수의 주석으로 알려주자 계약이행의 확인을 위한 코드는 단정문으로 표현하자. 주의점 함수쪽에서는 파라미터를 조정하지 않는다 함수쪽의 단정문

3 min read

LockSupport.park()

LockSupport.park() 운영중인 시스템에서 아래처럼 에러 코드들이 발생하면서 장애상황이 발생되기 시작했다. 위에 코드를 보면서 일단을 pool이 문제라고 생각했다. 찾아서 코드를 보니 pool 설정이 디폴트 설정으로 되어 있었다. 그래서 해당 풀이 문제인지 찾아 볼려고 첫번째 덤프에서 나왔던 콜스텍을 기준으로

3 min read