본문 바로가기

전체 글

(750)
[정보보안] 주목할 만한 HTTP 헤더 HTTP 사이클은 클라이언트가 요청할 때나 서버가 응답하는 자세한 내용을 헤더에 실어 보냅니다. 이러한 헤더는 여러 가지가 있습니다. 1. 웹서버가 설정해서 클라이언트 브라우저에 보내는 주요 헤더 정보 Set-Cookie: 이 값은 사용자의 세션이 유지되도록 보장하기 위하여 가장 흔하게 클라이언트에 제공하는 세션 식별자(쿠키)입니다. 해커가 사용자의 세션을 훔칠 수 있다면 공격자는 그 애플리케이션 내에서 해당 피해자인 척 가장할 수 있습니다. Content-Length: 이 값은 응답문의 바이트 단위 길이입니다. 이 값은 해커가 응용프로그램의 응답을 해독할 때 바이트 단위의 데이터를 예상할 수 있으므로 도움이 됩니다. 특별히 (반복적으로 추측하는) 무작위 대입법에 활용할 만합니다. Location: 이 ..
[MySQL] 적절한 스토리지엔진 선택 RDBMS(Relational Database Management System)는 표 형식으로 데이터를 저장하고 대부분은 SQL 언어로 데이터 조작을 수행하는 시스템입니다. 다양한 데이터를 저장한다거나 강력한 질의를 할 수 있어서 가장 범용성이 높은 스토리지입니다. RDBMS의 오픈소스 구현은 MySQL이나 PostgreSQL 등이 있으며, 두 다 실제 운용환경에서 널리 사용되고 있습니다. 많은 기업에서 MySQL을 범용 스토리지로 사용하고 있습니다. RDMBS 종류마다 각기 특성이 있는데, 최근에는 기능적, 성능적으로 팽팽하게 경쟁하고 있으니, 지금까지 축적된 노하우 등을 기준으로 선택하면 됩니다. MySQL 주요 스토리지 엔진에는 MyISAM과 InnoDB, Maria가 있습니다. MyISAMMyIS..
[자바성능] static의 올바른 사용 static에는 static 초기화 블럭이라는 것이 있습니다. static 초기화 블록은 위와 같이 클래스 어느 곳에나 지정할 수 있습니다. 이 static 블록은 클래스가 최초 로딩될 때 수행되므로 생성자 실행과 상관없이 수행됩니다. 위의 코드처럼 사용했을 때, staticVal의 값은 마지막에 지정한 값이 됩니다. static 블록은 순차적으로 읽혀집니다. package com.perf.statics; public class StaticBasicSample2 { static String staticVal; static { staticVal = "Static Value"; staticVal = StaticBasicSample.staticInt + ""; } public static void main(S..
[HTTP] 자주 발생하는 HTTP 응답 코드 HTTP 응답 상태 코드 중 자주 리턴되는 코드는 아래 네가지 입니다. 1) 200번대 리턴 코드: 정상적인 경우의 리턴 코드(200 코드가 대부분)2) 300번대 리턴 코드: 리다이렉션(Redirection)이 필요한 경우의 리턴 코드 - 대부분 302나 304 코드입니다. 만약 브라우저의 캐시를 사용하여 이미지나 CSS, JS 파일 등을 다시 서버에 요청하지 않는 경우에 이 코드가 리턴됩니다.3) 400번대 리턴 코드: 클라이언트 오류가 있을 경우의 리턴 코드 - 대부분 404 코드가 많습니다. 만약 서버에 존재하지 않는 주소를 요청하면 이 코드가 리턴됩니다.4) 500번대 리턴 코드: 서버에 오류가 있을 경우의 리턴코드 - 서버에서 예외가 발생했을때 오류 페이지 처리를 하지 않으면 500 코드를 주..
[자바성능] for 루프 성능 1. 조건문에서의 속도 조건문은 성능에 얼마나 많이 영향을 줄까요? 먼저 조건문에 어떤 것들이 있는지 보고, 조건문이 얼마나 성능에 영향을 주는지 알아보면, 조건문의 종류는 다음과 같습니다. if-else if-else switch if문 안에는 boolean 형태의 결과값만 사용할 수 있습니다. switch문은 byte, short, char, int, string 등을 사용한 조건 분기가 가능합니다. 일반적으로 if문에서 분기를 많이 하면 시간이 많이 소요된다고 생각하는데, 실제로는 그렇지 않습니다. if문 조건 안에 들어가는 비교 구문에서 속도를 잡아먹지 않는 한, if 문장 자체에서는 그리 많은 시간이 소요되지 않습니다. StopWatchAverage s1 = new StopWatchAverage..