전체 글 (77) 썸네일형 리스트형 Tomcat 세션이 간헐적으로 풀리는 문제 원인 분석 Set-Cookie를 직접 설정하다가 세션 쿠키가 깨진 사례운영 중이던 홈페이지에서 이상한 문제가 발생했다.관리자 로그인 후 페이지 이동 시 로그아웃게시판 글쓰기 진입 시 세션 끊김공지사항 진입 중 간헐적 로그아웃로컬 환경에서도 동일 증상 발생처음에는 단순 세션 타임아웃 문제인 줄 알았다.하지만 로그를 추적해보니 원인은 전혀 다른 곳에 있었다. 증상처음 로그인 직후에는 세션이 정상적으로 유지되었다.FMCSSESSIONID=B9D1F35A...sessionId=B9D1F35A...sessionDataNull=false 하지만 특정 페이지 이동 이후 기존 세션 ID와 다른 새로운 세션 ID가 생성되었다. COOKIE BEFORE : locale=pt-BRSESSION ID AFTER : D9717813.... 1장. 파운데이션 모델을 활용한 AI애플리케이션 입문 1.1 AI 엔지니어링의 부상2020년 이후 AI를 설명하는 핵심 키워드는 규모다.모델은 점점 커졌고 더 많은 데이터를 사용했으며, 더 많은 컴퓨팅 자원을 필요로 하게 되었다.그 결과 두 가지 현상이 생겼다.모델이 강력해져서 더 많은 작업을 수행할 수 있게 되었다.모델을 직접 학습시키는 비용이 너무 커져서 소수의 대기업만 직접 모델을 만들 수 있게 되었다.그래서 등장한 방식이 Model as a Service, 즉 모델을 서비스처럼 API로 사용하는 방식이다.이제 개발자는 직접 모델을 학습하지 않아도 OpenAI, Google, Anthropic 같은 회사가 만든 모델을 API로 사용할 수 있다.이 변화로 인해:AI 애플리케이션 수요 증가개발 진입 장벽 감소다양한 서비스 등장이라는 결과가 나타났다.1.1.. 11장. 자주 쓰는 서버 구조와 설계 패턴 1. MVC 패턴Model-View-Controller의 약자모델(Model): 비즈니스 영역의 로직을 처리뷰(View): 사용자에게 보여줄 결과를 생성컨트롤러(Controller): 사용자의 요청을 받아 흐름을 제어사용자의 요청이 컨트롤러로 들어오면, 컨트롤러는 요청을 해석하고 모델에 비즈니스 로직 수행을 위임한다.모델이 처리 결과를 반환하면, 컨트롤러는 그 결과를 바탕으로 적절한 뷰를 선택하여 사용자에게 응답한다. 2. 계층형 아키텍처계층형 아키텍처는 각 계층이 명확한 역할을 가지며, 자신보다 하위 계층에만 의존하는 구조를 가진다.간단한 레이어 구조 예시controller/└── UserController.javaservice/└── UserService.javarepository/└── UserRe.. 10장. 모르면 답답해지는 네트워크 기초 1. 노드, 네트워크, 라우터노드 (Node)노드는 네트워크에서 데이터를 송수신할 수 있는 모든 장치를 의미한다.대표적인 예로는 다음과 같은 장치들이 있다.스마트폰노트북서버라우터IoT 장비즉, 네트워크에 연결되어 데이터를 주고받는 모든 장치가 노드에 해당한다.네트워크 (Network)네트워크는 두 개 이상의 노드가 서로 데이터를 주고받기 위해 연결된 구조를 의미한다.인터넷은 전 세계 수많은 네트워크가 서로 연결되어 만들어진 거대한 네트워크 시스템이다.패킷 (Packet)패킷은 네트워크를 통해 전송되는 데이터의 기본 단위이다.대용량 데이터를 그대로 보내는 것이 아니라 작은 단위로 쪼개서 전송한다.패킷은 다음 두 가지로 구성된다.Header패킷의 출발지 IP목적지 IP프로토콜 정보패킷 순서 정보 등 네트워크.. 9장. 최소한 알고 있어야 할 서버 지식 개발자가 서버를 직접 운영하지 않더라도, 기본적인 서버 지식은 반드시 필요하다.서비스 장애 대응, 로그 확인, 배포, 성능 문제 해결 등 대부분의 실무 상황에서 서버 이해도가 큰 도움이 된다.1. 개발자와 서버서버(Server)는 일반적으로 다음 두 가지 의미로 사용된다.서비스를 제공하는 컴퓨터 장비클라이언트 요청을 처리하는 프로그램즉 서버라는 단어는 상황에 따라 다음을 의미할 수 있다.물리 서버 (Physical Server)가상 서버 (Virtual Machine)클라우드 인스턴스 (AWS EC2 등)서버 프로그램 (Apache, Nginx, Tomcat 등)물리 장비를 서버 하드웨어, 그 장비에 설치된 OS를 Linux 서버, 그 위에서 실행되는 프로그램을 Web Server / WAS로 구분할 수.. Rocky Linux + Tomcat 환경에서 CAPTCHA 이미지가 보이지 않는 문제 (sun.awt.X11FontManager 오류) Tomcat 기반 Spring 프로젝트에서 CAPTCHA 이미지가 보이지 않는 문제가 발생했다.로그를 확인해보니 다음과 같은 오류가 발생하고 있었다.java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontManager 요청 URL은 다음과 같다./Captcha/String CAPTCHA 이미지를 생성하는 과정에서 서버에서 오류가 발생하여 이미지가 생성되지 않는 상황이었다. 1. 오류 원인CAPTCHA 라이브러리(simplecaptcha 등)는 서버에서 직접 문자를 이미지로 렌더링한다.이때 내부적으로 java.awt.Font 클래스가 사용된다.즉 CAPTCHA 이미지는 서버에서 폰트를 사용하여 그림을 생성한다.하지만 Linux 서.. 8장. 실무에서 꼭 필요한 보안 지식 1. 인증과 인가인증: 사용자가 누구인지 확인하는 과정인증은 통해서 사용자가 누구인지 확인하고 그 후에 토큰을 발급해서 매 요청마다 다시 인증하지 않고 토큰을 사용해서 사용자를 식별한다.토큰으로 사용자를 식별하기 위해서는 정보를 저장해야 하는데 서버 별도의 저장소에 저장해서 토큰으로 매핑 하거나 토큰 자체에 사용자 식별 정보를 저장한다.1.1. 외부 저장소에 식별 정보 저장서버에 토큰과 사용자 식별 정보를 DB또는 레디스같은 별도 저장소에 보관할 수 있다.그 때 저장되는 데이터는토큰사용자 식별자생성 시간최근 사용 시간그 외 유효 시간, 클라이언트 버전 등 기타 데이터등이 저장된다.별도 저장소 사용은 보통 서버가 여러 대인 경우, 세션 공유가 필요하거나 서버 재시작 시에도 인증 상태를 유지해야 할 때 사용.. 4. 행동 기반 탐지 1. 왜 행동 기반 탐지가 필요한가초기의 매크로는AutoHotkey단순 키보드/마우스 매크로화면 좌표 클릭같은 UI기반의 매크로가 대부분이었다.때문에 매크로 차단은IP 차단요청 빈도 제한CAPTCHA기술들이 주요 방어 수단으로 사용되었다.그러나 최근 매크로는Selenium / Playwright / Puppeteer(브라우저 자동화 프레임워크)Headless ChromeHTTP Client 직접 호출 (fetch 재현) 같이 UI와 함께 HTTP 코드를 가지고 자동화 클라이언트 형태로 존재한다.기존에 있던 매크로 차단 기술은 여전히 유효하나 이 기술 만으로는 모든 자동화 공격을 판별할 수 없는 단계에 도달한 것이다.그래서 관점이 바뀌었다.이 요청이 단순히 정상 형식을 갖추었는가가 아니라 이 요청이 어떤 .. 이전 1 2 3 4 ··· 10 다음