개발기술 (132) 썸네일형 리스트형 Interception , Filter 서블릿 FilterServlet Filter is an object that can intercept and manipulate requests and responses in a web application. "filter" specifically refers to the interception and processing of HTTP requests and responses within the web application framework. (interception is a broader concept than filter) Key Concepts of Servlet Filters:Interception Mechanism: Filters work by intercepting requests before.. Spring Security - JWT 인증방식 구현 스프링 Security - Jwt Authentication 구현 흐름User Sign-Up:사용자는 사용자 이름(username), 비밀번호(password) 등의 정보를 제공.비밀번호는 안전하게 해시(예: BCrypt) 처리된 후 데이터베이스에 저장.사용자 정보는 UserDetails 객체(또는 엔티티) 형태로 데이터베이스에 저장.User Sign-In (Authentication):사용자가 로그인 요청(예: /login)을 보내면 UsernamePasswordAuthenticationFilter가 요청을 가로챕니다. 그리고 필터는추출된 username과 password를 기반으로 인증 전 상태의 UsernamePasswordAuthenticationToken 객체 (Authentication 객체).. SQL과 NoSQL 1. SQL과 NoSQL 구조관계형 데이터베이스 (RDBMS):RDBMS는 데이터를 테이블 형태로 저장하며, 정해진 스키마(schema)에 따라 제약을 준수함테이블 내에서 정합성을 유지하기 위해 데이터 구조(예: 데이터 타입, 열의 개수)를 반드시 충족해야 함.테이블 간에 정합성을 유지하기 위해서 외래키(Foreign Key)를 사용해서 관계(Relation)를 충족해야함 RDBMS는 데이터 중복을 줄이고 정합성을 유지하기 위해 데이터를 여러 테이블로 분리합니다(정규화).테이블 간에 강력한 **참조 무결성(Referential Integrity)**을 보장해야 하므로, 특정 테이블에 대한 연산이 다른 테이블에 영향을 줄 수 있습니다.**ACID(Atomicity, Consistency, Isolation.. 데이터베이스 스케일 업 & 아웃 스케일업 : 단일 서버(하드웨어)의 성능을 증가시켜 더 많은 요청을 처리하는 방법 스케일아웃 : 동일한 사양의 새로운 서버(하드웨어)를 추가하는 방법일반적으로, 스케일업을 할때에는 서비스 중단이나 추가적인 하드웨어 비용이 발생한다. RDBMS는 스케일 업을 하기위해서는 새로운 서버에 기존 서버의 데이터를 옮기고 데이터를 정리하는데 번거로운 작업이 필요함.반면, NoSQL은 처음부터 스케일 아웃을 염두에 두고 설계되었기때문에 데이터의 증가나 요청량이 증가하더라도 비슷한 사양의 새로운 하드웨어를 추가하면 문제가없음. Horizontal Scaling (Scale-Out)What It Is: Horizontal scaling involves adding more machines (or nodes) to t.. Redis 사용법 (Redis환경설정, Spring Redis) 레디스 DB의 디스크가 아닌 메모리에 저장하여 휘발성이 있지만 영속성 기능을 지원하기도 함. 안정성이 비교적 떨어지기 때문에 주로 캐시서버로 사용됨.Redis는 기본적으로 key-value 구조로 데이터를 저장하며 그 외에도 다양한 방식의 데이터타입 적용가능 (hash/ list/ Set/String) 레디스 종류싱글인스턴스방식 센티넬, 클러스터방식 - 마스터 슬레이브 구조을 하여, 서버 한대가 죽더라도 다른 서버가 살아있으면 구동 가능하도록 구현 레디스 활용점1. 캐쉬서버로서 DB로의 직접접근을 최소화시킴2. 동기화 문제를 해결하기 위해서 DB의 Serializable을 대신해서 SpinLock을 구현 OS 내에 레디스 설치 및 운용레디스 설치 : https://redis.io/docs/latest/o.. 프로젝트 설계 및 문서화 IT비즈니스 프로세스 비즈니스 프로세스는 구체화정도에 따라서 사업 - 기획- 개발의 순서로 이루어진다. 회사의 주요 의사결정자들이 사업을 결정한다. (의사결정이 존재하기때문에 이에 따른 위계질서가 존재함) 사업방향이 결정되면 기획자들과 사업자들이 해당 시장에 대한 데이터를 모으고 논의를 하면서 사업의 구체화가 이루어진다. 사업이 충분히 구체화되면 기획단계로 넘어가고, 서비스의 객체와 기능, 범위, 프로세스 등을 정의한다. 기획단계가 마무리되면 개발자단계로 넘어가고 사업기획의 기술적 관점에서 가능여부를 검토하여 기획의 세부내용을 수정한다. 개발명세서검토 (은행계좌생성 예제)1. 기술스택 결정 개발자는 내부 개발자원을 감안하여 개발언어, 기술스택, DB종류, DBdrive 등을 결정한다. 2. 각 기능.. Java 멀티쓰레드 쓰레드 개념정립 스레드는 어떻게 생성되는가? 자바에서는 모든 것과 마찬가지로 스레드도 객체로 다룬다. 자바는 실행 시점에 `main` 이라는 이름의 스레드를 만들고 프로그램의 시작점인 `main()` 메서드를 실행한다. 스레드를 생성하는 코드는 새로운 스레드 객체를 생성한 후 , 스레드 인스턴스의 start() 메서드를 시작한다. 그러면, JVM이 OS system call을 통해 새로운 스레드를 위한 별도의 스택 공간을 할당한다. 새로운 스레드는 이어서 스레드 인스턴스 내에 정의되어 있는 작업인 `run()` 메서드를 실행하여 정의된 작업을 실행한다. 여기까지가 스레드의 start() 동작이다. main 스레드는 새로운 스레드의 start() 메소드를 동작 완료 후 새로운 스레드의 생성을 기다리.. 디자인패턴 디자인패턴 싱글톤패턴하나의 인스턴스만 사용되는 경우. 하나의 인스턴스가 사용되지 않는 경우에는 인스턴스의 멤버변수에 저장/입력된 값들이 다른 인스턴스에 공유되지 않는다. 이로인해서 예상한 데이터를 찾을 수 없어서 문제가 발생하기도 함.빌더패턴장점1 : Setter대신 빌더패턴을 사용하면, 한번 생성된 instance의 값은 변경되지 못하게 하여 thread safe를 확보할 수 있음장점2 : 순차적으로 field를 하나씩 설정할 수 있어서 readbility가 증진됨. 필요한 데이터만 설정할 수 있어서 유연성이 증가됨장점3 : 필요한 데이터만 설정할 수 있어서 유연성이 증가됨스태틱팩토리패턴 프록시패턴프록시 패턴의 핵심은 바로 인터페이스의 동일성을 유지함으로써, 클라이언트가 실제로 대리 객체를 사용하고.. 이전 1 ··· 8 9 10 11 12 13 14 ··· 17 다음