DAO 고도화, 트랜잭션 관리
·
DB
DAO 고도화DAO 고도화를 할 때, 먼저 개선해야 할 부분은 코드 중복이다. 특히 Ctrl+C+V로 반복해서 붙여넣는 부분이 많다면, 템플릿 패턴을 적용하는 것이 효과적이다. 템플릿 패턴템플릿 패턴이란, 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴이다. https://yn98.tistory.com/25 템플릿 패턴은 디자인패턴 중에서 행위 패턴 중 하나이다.일반적으로 상위 클래스(추상 클래스)에는 추상 메서드를 통해 기능의 골격을 제공하고, 하위 클래스(구체 클래스)의 메서드에는 세부 처리를 구체화하는 방식으로 사용하며 코드 양을 줄이고 유지보수를 용이하게 만드는 특징을 갖는 디자인 패턴이다. 템플릿 패턴은 ..
[정보처리기사] 암호 알고리즘
·
책/2024 수제비 정보처리기사
암호 알고리즘→ 데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법 ▼ 암호 알고리즘 비교구분대칭 키 암호 방식비대칭 키 암호 방식키→ 대칭 키(비밀키)→ 비대칭 키(공개 키, 사설 키키의 관계→ 암호화 키 = 복호화 키→ 암호화 키 != 복호화 키키 개수→ n(n-1)/2→  2n암호 알고리즘→ 공개→ 공개장점→ 계산 속도가 빠름→ 암호화 키 사전 공유 불필요→ 관리해야 할 키 개수가 적음단점→ 키 분배 및 관리의 어려움→ 기밀성만 보장→ 계산 속도 느림알고리즘 → DES, AES, SEED → 디피-헬만, RSA해시 함수→ 임의의 길이를 갖는 임의의 데이터를 고정된 길이의 데이터로 매핑하는 단방향 함수 ▼ 일방향 암호 방식 ★방식설명MAC(Message Authe..
[정보처리기사] 서버 인증 및 접근 통제
·
책/2024 수제비 정보처리기사
서버 접근 통제의 유형유형설명임의적 접근 통제(DAC; Discretionary Access Control)→ 주체나 그룹의 신분에 근거하여 객체에 대한 접근을 제한하는 방법→ 신분 기반(Identity-Based) 접근통제 정책→ DAC에서 사용자는 자원과 관련된 ACL(Access Control List)이 수정됨으로써 자원에 대한 권한을 부여강제적 접근 통제(MAC; Mandatory Access Control)→ 객체에 포함된 정보의 허용등급과 접근 정보에 대하여 주체가 갖는 접근 허가 권한에 근거하여 객체에 대한 접근을 제한하는 방법→ 규칙 기반(Rule-Based) 접근통제 정책역할 기반 접근 통제(RBAC; Role Based Access Control)→ 중앙 관리자가 사용자와 시스템의 상..
[Spring] AOP에서 Pointcut 사용방법과 예시
·
카테고리 없음
Pointcut Pointcut은 AOP(Aspect-Oriented Programming)에서 공통 관심사를 적용할 지점을 정의하는 표현식이다. 즉, 어느 메서드에 Aspect를 적용할지 지정하는 데 사용한다.Pointcut의 기본 문법@Pointcut 어노테이션을 사용해 Pointcut을 정의한다.표현식에는 패키지, 클래스, 메서드 이름을 기반으로 대상 메서드를 설정한다.@Pointcut("execution(* com.yn.app.biz..*Impl.*(..))")public void logPointcut() {} 위 코드는 com.yn.app.biz 패키지 내의 모든 Impl 클래스의 메서드에 대해 포인트컷을 정의한 것이다.주요 Pointcut 예시로그를 위한 Pointcut@Pointcut("ex..
[Spring] AOP와 어노테이션
·
Spring
AOP란?AOP란 Aspect-Oriented Programming의 약자로, 횡단 관심사를 모듈화하여 코드의 가독성을 높이고, 유지보수를 용이하게 하는 프로그래밍 기법이다. 주로 로깅, 보안, 트랜잭션 관리와 같은 기능에 사용된다. AOP와 어노테이션@Aspect@Aspect 어노테이션은 AOP의 핵심 요소인 Aspect를 정의한다. Aspect는 공통 관심사를 포함하는 모듈로, 메서드 실행 전후에 특정 동작을 정의할 수 있다.@Aspectpublic class MyAspect { // Advice 메서드 정의}@Pointcut@Pointcut 어노테이션은 특정 Join Point를 정의한다.Join Point는 Advice가 적용될 수 있는 지점을 의미하며, 포인트컷 표현식을 통해 정의할 수 있..
[Spring] AOP 관점지향 프로그래밍
·
Spring
AOP를 알아보기 전에 Spring에 대해 다시 복기해보자.스프링 프레임워크란?스프링 프레임워크는 IoC(제어의 역전)와 AOP(관점 지향 프로그래밍)를 지원하는 경량 프레임워크다.스프링은 POJO(Plain Old Java Object) 기반으로 설계되어 있어서 복잡한 설정 없이 간단하게 개발할 수 있게 해준다.개발자들이 일정한 구조, 틀, 규격을 따르면서 개발하기 때문에 개발 역량이 상향평준화되고, 유지보수가 용이해진다.IoC: 제어의 역전원래 객체를 생성하고 관리하는 작업은 개발자가 new 키워드를 통해 직접 수행했지만, IoC를 통해 이 작업을 컨테이너가 대신 맡는다. 이를 통해 개발자는 비즈니스 로직에만 집중할 수 있고, 결합도를 낮출 수 있다. 스프링에서는 다양한 객체들(DS, HM, VR, ..
[Spring] Ajax를 이용한 비동기 처리와 아이디 중복검사 구현
·
Spring
비동기 처리비동기 처리는 서버와 클라이언트 간의 통신을 비동기적으로 처리하여, 사용자가 요청을 보낸 후 페이지가 새로고침되지 않고도 결과를 받을 수 있는 기술이다. 여기서는 비동기 처리에서 반환되는 데이터 형태에 대해 알아볼 것이다.1. String(Text) 반환String 형식의 데이터는 주로 간단한 결과나 상태를 반환할 때 많이 사용된다. 보통 특정 작업의 성공 여부나 단순한 메시지를 전달할 때 적합하다. 비동기 통신으로 서버에 요청을 보내고, 응답으로 텍스트 값을 받아 처리할 수 있다. 대표적인 예시는 아래와 같다. 아이디 중복 검사: 회원가입 시 사용자가 입력한 아이디가 이미 존재하는지를 확인할 때, 서버에서 '사용 가능', '사용 불가'와 같은 텍스트를 반환해준다.좋아요 기능: 사용자가 게시물..
the server responded with a status of 415 ()
·
에러일기
위 오류는 클라이언트에서 서버로 Ajax 를 이용해서 비동기 요청를 했을 때 계속 발생했다. HTTP 415 오류 응답 코드는 페이로드 형식이 지원되지 않는 형식이기 때문에 서버가 요청 수락을 거부했음을 나타낸다.json을 못 읽는 것 같았다. ds-servlet.xml 파일에 아래 bean 코드를 추가해서 해결했다.