목록상식 (20)
코딩마을방범대

데이터 베이스는 데이터를 물리 디스크에서 직접 쓰기 때문에 서버에 문제가 발생하여 다운되더라도 데이터 손실이 되지않습니다. 하지만 매번 디스크에 접근해야 하기 때문에 사용자가 많아질수록 부하가 많아져서 느려질 수 있습니다. 일반적으로 서비스 운영 초반이거나 규모가 작은, 사용자가 많지 않은 서비스의 경우에는 WEB - WAS - DB 의 구조로도 데이터 베이스에 무리가 가지 않지만, 사용자가 늘어난다면 데이터 베이스가 과부하 될 수 있기 때문에 캐시 서버를 도입하여 사용합니다. 캐시 서버 (Cache Server) 캐시 (Cache) 한 번 읽어온 데이터를 임의의 공간에 저장하여 다음에 읽을 때는 빠르게 결괏값을 받을 수 있도록 도와주는 공간 매번 데이터 베이스를 거치는 것이 아니라 캐시 서버에서 첫 번..
Log - (1) Log4jLog - (2) LogbackLog - (3) Log4jdbc+Logback을 이용한 SQL 로그 남기기Log - (4) log 설정 xml 파일에서 if문 사용하기 로깅(Logging)정보를 제공하는 일련의 기록인 로그(log)를 생성하도록 시스템을 작성하는 활동로그(Log)의 이점1. 재현하기 힘든 버그에 대한 유용한 정보를 제공할 수 있음2. 성능에 관한 통계와 정보를 제공할 수 있음 로그를 출력하는 방법System.out.println() 이용로깅 라이브러리 이용 로그 라이브러리 종류java.util.loggingJDK 1.4부터 포함된 표준 로깅 API별도 라이브러리 추가 불필요기능이 많이 부족해 다른 로그 라이브러리를 많이 사용Apache Commons log..

tomcat 오류가 발생하는 경우 /var/log/tomcat9 위 경로에서 로그 파일(catalina.out) 확인이 가능하다. 위 경로로 접속한 후 하기 명령어를 실행하면 로그파일 확인이 가능하다. sudo tail -1000f catalina.out // 1000줄 확인 sudo tail -f catalina.out // 10줄 확인 // 경로로 이동하지 않고 한 번에 실행하는 방법 sudo tail -1000f /var/log/tomcat9/catalina.out 💡 TIPS! MySQL 데이터베이스 공유하는 방법 Navigator의 Users And Privileges -> Add Account 클릭 Name과 Password 입력 후 Limit to Host Matching은 %로 Apply ..

Nginx란? 트래픽이 많은 웹사이트의 서버(WAS)를 도와주는 비동기 이벤트 기반 구조의 경량화 웹 서버 프로그램 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용 Reverse Proxy Server로 활용하여 WAS의 부하를 줄일 수 있는 로드밸런서 역할 Apache보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화됨 Nginx의 장단점 Nginx의 장점 이벤트 중심 접근 방식을 사용하여 클라이언트 요청 제공 제한된 하드웨어 리소스로도 여러 클라이언트 요청을 동시에 효율적으로 처리 단일 스레드를 통해 여러 연결을 처리 가능 최소한의 리소스로 웹 서버의 아키텍처를 개선하기 위해 독립형 HTTP 서버로 배치 가능 Nginx의 단..

프록시(Proxy) 사전적 의미: 대신, 대리 보안상의 문제로 직접 통신을 주고 받을 수 없는 두 PC 사이에서 통신을 할 때 중간에서 대리로 중계하는 것 클라이언트가 서버를 직접 접근하지 못하기 때문에 접근 가능한 사이트를 제한할 수 있으므로 보안을 향상할 수 있음 클라이언트가 직접 App 서버에 직접 요청하는 경우, 프로세스 1개가 응답 대기 상태가 됨 따라서 프록시 서버를 둠으로써 요청을 배분하는 역할을 함 클라이언트에서 리소스를 요청 프록시 서버에 도착 서버에 전달 프록시 서버는 서버의 응답을 클라이언트에 전달 포워드 프록시(Forward Proxy) 클라이언트는 서버를 알지만, 서버는 프록시를 통해 요청이 오기 때문에 클라이언트를 알지 못함 (서버에서 받는 IP는 클라이언트의 IP가 아닌 프록시..

CSRF(Cross-site request forgery) 공격이란 사이트 간 요청 위조 권한을 가진 유저가 스스로 시스템에 있는 정보를 탈취하거나 망가뜨리도록 조종하는 것 CSRF방어의 핵심은 XSS차단 + 비정상적인 루트를 통한 CUD를 막는데 있음 CSRF의 방어 방법 1. MAKE TOKEN & CHECK 로그인시 auth token 값을 생성(세션에 보관) session.setAttribute("CSRF_TOKEN",UUID.randomUUID().toString()); 화면 단에선 해당 토큰을 빼내어 hidden값에 넣어 놓음 submit 처리시 세션에 있는 값과 비교 / 파라미터로 전달된 csrf 토큰 값 String param = request.getParameter("_csrf"); //..
JWT (Json Web Token) 인증에 필요한 정보들을 암호화시킨 JSON 토큰 인증(authentication) 또는 인가(authorization) 정보를 서버와 클라이언트 간에 안전하게 주고 받기 위해서 사용 JSON 데이터를 Base64 URL-safe Encode 를 통해 인코딩하여 직렬화한 것 (위변조 방지를 위해 개인키를 통한 전자서명이 들어있음)Base64 URL-safe Encode 는 일반적인 Base64 Encode 에서 URL 에서 오류없이 사용하도록 '+', '/' 를 각각 '-', '_' 로 표현한 것 Authorization HTTP 헤더를 Bearer 으로 설정하여 클라이언트에서 서버로 전송 서버에서는 토큰에 포함되어 있는 서명(signature) 정보를 통해서 위변조 ..
원래 웹에서의 데이터는 가로채면 누구나 읽을 수 있는 일반 텍스트 형태로 전송되었음 SSL (Secure Scokets Layer) 암호화 기반 인터넷 보안 프로토콜 개인정보 보호, 인증, 데이터 무결성을 보장하기 위해 Netscape가 1995년에 개발 전달되는 모든 데이터를 암호화하고 특정한 유형의 사이버 공격도 차단 TLS(Transport Layer Security) 암호화의 전신이기도 함 SSL/TLS 를 사용하는 웹사이트 URL은 HTTP 대신 HTTPS을 사용 SSL은 1996년 SSL 3.0 이후 업데이트되지 않았으며, 알려진 취약성이 여러가지가 있어 보안 전문가들은 SSL 사용 중단을 권장 SSL의 대안으로는 TLS가 있음 TLS 최신 암호화 프로토콜 SSL 암호화로 혼용해서 부르는 경우..