전체 글 (30) 썸네일형 리스트형 [programming] 컴파일 타입과 런타임 타입 컴파일 타입/런타임 타입프로그래밍에서 기본기이나 성능에 큰 영향을 끼치는 것이 바로컴파일 타입과 런타임 타입을 구분하는 것이다.다형성의 가장 중요한 기준이 되므로 살펴보고 가도록 하자. 컴파일 타입컴파일 시점에서 변수와 표현식이 고정되고 타입 검사(type checking)가 컴파일러에 의해 수행되는 타입일반적으로 사용하는 변수와 상수들은 모두 컴파일 타입에 속한다. 장점컴파일 단계에서 오류가 검출되므로 안정성이 향상된다.정적 디스패치(static dispatch)가 가능하므로 함수 호출 오버헤드가 매우 낮다.코드 최적화(인라인, 레지스터 할당)에서 유리하다.단점컴파일 시점에 타입이 결정되기에 유연성이 낮다. (확장성, 유지보수성) 런타임 타입변수의 타입 검사 (type checking)와 결정.. [NGINX] 2.NGINX를 통한 해외 IP 차단 해외아이피 차단웹사이트를 개설시, 수많은 봇넷을 통해브루트포스와 디도스 공격, 스캐닝을 당하게 된다.이를 어느정도 방어하기 위해서 해외 아이피를 간단하게 방어할만한 수단을 마련해보자.1. 국내 IP 리스트 다운로드 https://xn--3e0bx5euxnjje69i70af08bea817g.xn--3e0b707e/jsp/statboard/IPAS/ovrse/natal/IPaddrBandCurrent.jsp 한국인터넷정보센터(KRNIC)도메인 소개, 등록 및 사용, IP주소, AS번호, DNS 정보, 관련규정 제공xn--3e0bx5euxnjje69i70af08bea817g.xn--3e0b707e 여기서 국내에서 사용되고 있는 IP의 리스트와 대역폭을 엑셀 파일로 받아볼 수 있다. 2. 엑셀 파일 편집 및 .. [MySql] 시/분/초를 올림하는 쿼리 시/분/초 계산 쿼리업무에서 시/분/초가 변경되는 값을 요구하는 경우가 있었는데막상 만들어보니 꽤 흥미로운 부분이어서 기록으로 남겨두고 싶었다.SELECT wend_datetime, CASE WHEN SECOND(wend_datetime) > 0 THEN CASE WHEN MINUTE(DATE_ADD(wend_datetime, INTERVAL 1 MINUTE)) >= 60 THEN DATE_FORMAT( DATE_ADD( CONCAT(DATE_FORMAT(wend_datetime, '%Y-%m-%d %H'), .. [DB] TRIGGER와 CASCADE는 무엇이 다른가? TRIGGER와 CASCADE언뜻 보면 비슷한 개념으로 보일 수 있다.그래서 그 둘을 정리해보고자 한다. 1. 개요CASCADE외래키 제약 조건의 옵션으로 부모 테이블이 업데이트 되거나 삭제될때, 삭제하거나 업데이트 테이블 간의 참조 무결성 유지를 통한 관련 데이터의 동기화가 목적TRIGGER특정 테이블의 지정한 이벤트에 자동으로 실행되는 DBMS 객체데이터 무결성 유지, 감사 로깅, 비즈니스 규칙 적용 등 다양한 목적 2. 작동 원리 CASCADE실행 로직1. 부모 테이블에서 DELETE 또는 UPDATE가 발생시, DBMS가 외래 키 제약조건을 확인2. CASCADE가 설정된 경우, 자식 테이블의 관련 레코드를 확인3. 관련 레코드가 있는 경우 레코드를 UPDATE/DELETE TRIGGER실행.. [Srping/lombok] Setter와 객체지향 설계의 위배 lombok 어노테이션은 우리에게 많은 편리함을 가져다준다.다만, 이 편리함이 프로그래밍 지향점을 해칠 수 있다는 사실을 아는가?오늘은 Setter에 대해서 알아보도록 하자. 1. 어노테이션의 기본 간단한 Setter 객체를 생성해보자.이렇게 간단하게 @Setter만 적어준다면 setName과 setAge Setter를 만들어준다. 이렇게 만들어진 Setter를 통해 의존성 주입을 할 수도 있다.이렇게만 보면 너무나 편리한 기능이 아닐 수 없다. 2. 무엇이 문제가 되는가? 1 - 불변성의 위배 Setter는 우리가 가져온 데이터의 불변성을 위배한다.언제든 중간에 데이터가 변경될 수 있거나 가공될 수 있으며이는 객체지향의 중요한 원칙 중 하나인 불변성 원칙을 위배할 가능성을 지닌다.협업자가 싱글.. [NGINX] 1. 어째서 NGINX를 사용해야 하는가? NGINX개발자라면 한번 쯤 들어봤을 서버 관리 도구이다.그런데 그냥 띄워도 서버는 작동하는 것 아닌가?서버 관리 도구 NGINX가 왜 존재하는지그리고 어떤 이점을 가지고 있는지에 대해 알아보자1. 성능과 확장성 이벤트 기반, 비동기 아키텍처로 수천 개의 동시 연결 처리NGINX는 이벤트 기반으로 비동기 아키텍처를 사용해서 수천 개의 연결을 동시에 지원한다.즉, 트래픽이 많은 서버일수록 더 유리한 구조를 띄며 성능 저하가 거의 없이 확장이 가능하다. 2. 리소스의 효율성NGINX는 메모리와 CPU 사용량이 현저히 적다.Apache나 다른 웹 서버와 비교해도 현저히 적은 편에 속한다.그렇기에 리소스가 제한된 환경에도 사용할 수 있으며 비용이 효율적이다. 3. 보안과 로드 밸런싱리버스 프록시로 작동되는 로드.. [NGINX] 0. Nginx 기본 명령어 기본 명령어nginx시작nginx -s stop정지nginx -s reload다시 시작nginx -t설정파일 올바른지 체크/etd/nginx main 설정파일 위치/etc/nginx/conf.d/각 서버용 설정파일 위치 [보안] 인바운드/아웃바운드의 개념과 보안 방화벽우리는 개발을 하면서 흔히들 방화벽 문제로 고생을 한다.방화벽의 인바운드와 아웃바운드에 대해 자세히 알아보자 1. 인바운드와 아웃바운드의 기준점 인바운드가 들어오는거고 아웃바운드는 나가는 거구나! 라고 단편적으로 생각할 수도 있다.그렇다면 '다운로드'는 아웃바운드일까? 서버가 주는거니까? 정답은 '아니다' 다운로드 역시 인바운드 방화벽 정책에 속한다.왜냐하면 우리가 다운로드를 서버에 인바운드 트래픽으로 '요청'했기 때문이다. 방화벽 인바운드와 아웃바운드를 나누는 기준은 다름 아닌 '요청의 주체'이다. 2. 둘은 무엇이 다를까? 단순히 권한을 연다고만 생각할 수 있다.그러나 이를 통해 이용되는 방법은 전혀 다르다. 보통 우리가 고생하게 되는 것은 인바운드 정책에 의한 것이라 보면 된다.접근자는 .. 이전 1 2 3 4 다음