목록분류 전체보기 (269)
Coding Planet
현재 개발중인 웹페이지 로그인 시 SpringSecurityLoginFilter를 타면서 필요한 절차를 따르고 있다. 현재 페이지는 사용자가 가입신청을 하면 관리자가 승인 후 사이트를 이용할 수 있다. 이 때 사용 상태(가입신청 or 가입승은)을 조회한 후 가입대기 상태라면 alert창을 띄우고 다시 로그인 페이지로 보내야한다. Java 서블릿에서 클라이언트에 JavaScript Alert 창을 띄우려면, HttpServletResponse 객체를 사용해야 한다. 다음은 가입 신청 상태가 '승인 대기(A)'인 경우, 사용자에게 상태를 알리고 로그인 페이지로 리디렉션하는 예제 코드이다. if ("A".equals(loginVO.getUserSttus())) { httpResponse.setConte..
그 모든 것들은 늘 존재했던 것이다. 그런데 싯다르타는 그것을 보지 못했다. 그는 그런 것에 마음을 두지 않았다. 이제야 비로소 싯다르타는 그런 것에 마음을 두었고, 그것의 일부가 되었다. 그의 눈에 빛과 그림자가 스며들었고, 그의 가슴에 별과 달이 스며들었다.나는 사고할 수 있습니다. 나는 기다릴 수 있습니다. 나는 단식할 수 있습니다.분명 나는 즐기기 위해서 여행을 갔습니다. 그렇지 않다면 무엇때문에 갔겠습니까? 나는 사람들과 여러 지역을 알게 되었고, 친절함과 신뢰를 즐겼고, 우정을 발견했습니다. 보십시오, 친구여. 내가 만약 카마스바미였다면 일이 수포로 돌아간 것을 알자마자 단단히 화가 나서 서둘러 돌아왔을 것입니다. 그러면 시간과 돈이 실제로 낭비됐을 겁니다. 하지만 나는 좋은날들을 보냈고, 기..
얼마전 전자정부프레임워크를 주관하고 관리하는 NIA에서 신규버전 4.2와 우수 활용사례에 대해 Zoom으로 세미나를 진행했다. 초보 개발자로서 이해하지 못하는 부분이 상당했지만 현재 진행중인 우리 프로젝트에서 고민하던 사항과 맞닿아 있는 주제가 있어서 정리한다. 1. WebFluxSpring Framework 5에서 새롭고 소개된 모듈이다. 비동기적이고 논블로킹 방식의 웹 애플리케이션을 개발할 수 있게 해준다. 전통적인 서블릿 기반의 스프링 MVC와 달리, WebFlux는 Reactive Streams API를 사용하여 요청 처리 시 발생할 수 있는 I/O 작업에서 서버의 자원 활용도를 최대화한다. 간단히 말해, WebFlux를 사용하면 하나의 스레드가 여러 클라이언트의 요청을 동시에 처리할 수 있어서..
UI(User Interface)는 사용자가 소프트웨어를 조작하고 효과적으로 사용할 수 있도록 도와주는 요소들의 집합을 의미한다. UI는 대체로 다음과 같은 네 가지 주요 유형으로 분류할 수 있다. UI 유형 설명 그래픽 사용자 인터페이스(GUI) 시각적 요소를 사용하여 사용자와 컴퓨터 간의 상호작용을 가능하게 하는 인터페이스이다. 예를 들어, 윈도우, 아이콘, 버튼 등이 있다. 명령줄 인터페이스 (CLI) 사용자가 텍스트 명령을 입력하여 소프트웨어와 상호작용하는 인터페이스이다. 개발자들 사이에서 선호된다. 메뉴 주도 인터페이스 (MDI) 사용자가 제한된 목록에서 선택하여 상호작용하는 인터페이스이다. ATM 또는 자판기 같은 시스템에서 흔히 볼 수 있다. 자연어 인터페이스 (NLI) 사용자가 자연어를 통..
리눅스에서의 레이드(RAID)는 여러 개의 하드 드라이브를 묶어서 하나의 논리적인 드라이브로 인식하게 하는 기술로, 데이터의 안정성과 성능을 향상시키는 목적으로 사용된다. RAID는 여러 레벨로 구성되며, 각 레벨은 다양한 데이터 보호 및 성능 기능을 제공한다. 주요 RAID 레벨은 다음과 같다. RAID 0: RAID 0은 스트라이핑(Striping) 기술을 사용하여 데이터를 여러 드라이브에 분산. 이로 인해 입출력 성능이 향상되지만, 하나의 드라이브가 손상되면 전체 데이터가 손실될 수 있으므로 데이터 복구 및 안정성이 없다. - 2개 디스크 존재시 번갈아가면서 데이터 저장, 각 디스크가 2TB라면 총 가용 메모리는 4TB RAID 1: RAID 1은 미러링(Mirroring) 기술을 사용하여 데이터를..
| 가상 메모리란? 컴퓨터의 보조기억장치 일부를 주기억장치처럼 사용하는 기술이다. 이를 통해 주기억장치의 용량이 실제보다 크게 느껴지게 만들 수 있다. 프로그램을 작은 블록들로 나눠서, 필요한 블록만 주기억장치에 할당하는 방식으로 동작한다. 이 기술은 주기억장치보다 큰 용량의 프로그램을 실행할 수 있게 해준다. 가상 메모리의 주소를 주기억장치의 주소로 변환하는 '매핑' 과정이 필요하다. | 구현 기법 1. 고정 분할(정적) 페이징(Paging): 프로그램과 주기억장치 영역을 동일한 크기의 페이지와 프레임으로 나눈다. 2. 가변 분할(동적) 세그먼테이션(Segmentation): 프로그램을 다양한 크기의 논리적 단위, 즉 세그먼트로 나눈다. | 페이징 기법 정의: 가상기억장치와 주기억장치의 영역을 동일한 ..
1. 데이터베이스 무결성의 개념 데이터베이스의 무결성(Integrity)은 데이터의 정확성, 일관성 및 유효성을 보장하는데 필요한 일련의 규칙이나 제약조건을 의미한다. 2. 데이터베이스 무결성의 종류 종류 특징 개체 무결성 모든 테이블은 고유한 기본키를 가져야 하며, 이 기본키는 중복되거나 NULL이 될 수 없다. 참조 무결성 모든 외래키 값은 NULL이거나 참조되는 테이블의 기본키 값을 정확히 일치해야 한다. Restrict, Cascade 도메인 무결성 속성 값은 정의된 도메인에 속해야 한다. 고유 무결성 테이블의 모든 행에서 특정 컬럼의 값은 반드시 고유해야 한다. 예를 들어, 사용자 ID는 중복될 수 다. 키 무결성 테이블에서 사용되는 모든 키(기본키와 후보키)는 고유해야 하며 중복을 허용하지 않..
수퍼키(Super Key) 어떤 엔터티를 유일하게 식별할 수 있는 속성의 집합 수퍼키는 하나 이상의 속성으로 구성될 수 있으며, 중복된 튜플 없이 테이블 내의 모든 튜플을 유일하게 식별할 수 있어야 한다. 후보키(Candidate Key) 수퍼키 중에서 불필요한 속성을 제거하여 가장 간단한 형태로 만든 키 후보키는 테이블을 유일하게 식별할 수 있는 최소한의 속성으로 구성 후보키는 중복을 허용하지 않으며, 모든 속성이 반드시 식별에 필요 기본키(Primary Key) 후보키 중에서 선택된 메인 키로, 테이블의 각 행을 유일하게 식별하는 데 사용 기본키는 NULL 값을 가질 수 없으며, 테이블 내에서 각 튜플을 유일하게 식별 대체키(Alternate Key) 후보키 중에서 기본키로 선택되지 않은 나머지 키들..
1. 관계대수의 개념 원하는 데이터를 찾기 위한 절차적 언어 2. 순수 관계 연산자 기호 설명 SELECT σ 선택: 조건을 만족하는 튜플(열)을 선택함. 수평적 PROJECT π 투영: 선택된 속성(행, 컬럼)에 대한 값들로 구성된 새로운 관계를 반환함. 수직적 JOIN ⨝ 조인: 두 관계를 결합하여 관련된 정보를 연결함. DIVISION ÷ 분해: 한 관계의 튜플이 다른 관계의 모든 튜플과 관계를 가질 때 해당 튜플을 선택함. A,B 두 테이블에 대해 A DIVISON B는 B 테이블의 조건을 만족하는 튜플들을 테이블 A에서 추출하는 연산. 3. 일반 집합 연산자 기호 설명 합집합 ∪ 두 관계의 모든 튜플을 합친 결과를 반환함. 교집합 ∩ 두 관계의 공통 튜플만을 반환함. 차집합 - 한 관계에 있는 ..
1. 디지털 권한 관리 DRM(Digital Rights Management)이란? 디지털 콘텐츠의 사용 권한을 관리하는 기술. 콘텐츠 제작자나 배포자가 저작물을 불법 복제나 배포로부터 보호하기 위해 사용한다. 예를 들어, 음악이나 영화, 전자책 등의 파일을 구매한 사용자가 이를 무단으로 공유하지 못하도록 제한한다. 2. DRM의 제어 흐름 콘텐츠 제작자가 콘텐츠(파일, 미디어 데이터 등)를 만들어 콘텐츠 공급자에게 제공 콘텐츠 공급자는 콘텐츠를 클리어링 하우스(Clearing House)에 등록하며, 이곳에서 콘텐츠에 대한 권한관리와 라이선스를 관리 클리어링 하우스는 콘텐츠 사용 권한을 관리하고, 라이선스 발급, 결제 처리 등을 담당 사용자는 콘텐츠 서비스를 통해 콘텐츠를 요청하고, 이를 받기 위해서는..