분류 전체보기
[CS][알기 쉬운 정보보호개론 3판] Chapter09. 메세지 인증 코드 (MAC)
Prove(증명)과 Verify(검증) 증명 : 송신자가 수신자에게 메세지를 인증 받는 행위 검증 : 수신자가 송신자의 메세지를 검사하는 행위 Alice가 Bob에게 메시지를 보내고, Bob이 Alice의 메시지를 검사한다고 하자. Alice는 Bob에게 메시지가 변하지 않았다는 것을 "증명"하게 되며, Alice를 증명자 (Prover) 라고 부른다. Bob은 Alice가 보낸 메시지가 변하지 않았다는 것을 "검증"하게 되며, Bob을 검증자 (Verifier) 라고 부른다 메세지 인증 코드 (MAC) 해시 함수 사용 입력 : 메세지, 공유하는 키 출력 : 고정 비트 길이의 코드 프로세스 Alice와 Bob 공유하고 있는 키 K와 해시 함수 H()가 있다고 하자 Alice가 Bob에게 메시지 M을 보낼..
[CS][알기 쉬운 정보보호개론 3판] Chapter08. 일방향 해시함수
데이터의 무결성 데이터가 함부로 위/변조 되지 않았다는 것을 증명 무결성 검사를 위한 방법으로 다른 안전한 장소에 복사본을 저장하는 방법이 있다 → 공간 낭비의 문제점 파일로부터 나올 수 있는 작은 값을 보관하기 → 해시값,지문,Message Digest 이러한 값을 만들어내는 함수를 해시 함수라 한다. 해시 함수 함수 H(x)가 x가 임의의 길이라도 함숫값의 길이는 항상 일정할 때 해시값의 길이는 메세지의 길이와는 관계 X 입력값은 모든 디지털 데이터가 가능 (임의+값X 것까지) 해시 함수와 안전한 해시 함수 만족해야 하는 성질 임의 크기의 데이터 블록에 적용 일정한 길이의 출력 계산 용이성과 구현 가능성 해시 함수가 ‘안전하다’ 라고 말할 수 있는 성질 비가역성 : 한 방향으로만 계산, 역함수X, H..
[스프링부트와 JPA 활용 2] Section2. API 개발 고급 - 준비
API 개발 고급 소개 조회용 샘플 데이터 입력 지연 로딩과 조회 성능 최적화 컬렉션 조회 최적화 페이징과 한계 돌파 OSIV와 성능 최적화 조회용 샘플 데이터 입력 userA JPA1 BOOK JPA2 BOOK userB SPRING1 BOOK SPRING2 BOOK 두 건의 주문이 접수된 것이다. jpashop/src/main/java/jpabook/jpashop/InitDb.java 추가 package jpabook.jpashop; import jakarta.annotation.PostConstruct; import jakarta.persistence.EntityManager; import jpabook.jpashop.domain.*; import jpabook.jpashop.domain.item...
[스프링부트와 JPA 활용 2] Section1 중 "회원 삭제 API"
JPA 활용2를 듣던 도중, 회원 등록, 조회, 수정 API는 강의에서 다루나 삭제 API를 강의에서 안 다루어 직접 코드를 짜 보았다. MemberApiController.java 에 코드 추가 //회원 삭제 API @DeleteMapping("/api/v3/members/{id}") public ResponseEntity deleteMemberV1(@PathVariable ("id") Long id) { memberService.delete(id); return new ResponseEntity("회원이 성공적으로 삭제되었습니다", HttpStatus.OK); } MemberService.java 에 코드 추가 //회원 삭제 API @Transactional public void delete(Long..
RESTful API 기초 - 의미, 장점, 응답/요청 형식
RESTful API 의미 = REST API 참고 : API 기초 - API 의미, API 종류(WebSokcet, REST, Web), API 유형 — y-seo의 딩코 기록들 (tistory.com) API 기초 - API 의미, API 종류(WebSokcet, REST, Web), API 유형 API 란 ? Application Programming Interface Application Programming을 위한 Interface 주로 클라이언트와 서버가 서로 통신할 수 있게 하는 메커니즘이다. 개발자가 하는 요청과 받고 싶은 응답을 구성하는 방법에 y-seo.tistory.com REST의 균일한 인터페이스를 제공한다. 균일한 리소스 식별자를 사용한다. 클라이언트가 원할 때 리소스를 수정하거..
API 기초 - API 의미, API 종류(WebSokcet, REST, Web), API 유형
API 란 ? Application Programming Interface Application Programming을 위한 Interface 주로 클라이언트와 서버가 서로 통신할 수 있게 하는 메커니즘이다. 개발자가 하는 요청과 받고 싶은 응답을 구성하는 방법에 대한 정보를 포함한다. 쉽게 말하자면 "연결 통로"로 생각할 수 있다. Websocket API JSON 객체를 사용하여 데이터를 전달하는 웹 API 클라이언트와 서버 간의 양방향 통신을 지원한다. REST API Representational State Transfer REST : GET, PUT, POST, DELETE 등의 함수 집합 클라이언토와 서버가 HTTP를 사용하여 데이터를 교환한다. stateless 특징을 가진다. 서버가 클라이..
[스프링부트와 JPA 활용 2] Section1. API 개발 기본
회원 등록 API 단순히 SQL로 API를 끌어오지 않아도 된다. JPA는 Entity가 있기 때문에 API를 설계할 때 주의해야 한다. API를 test 하기 위해 Postman을 설치한다. Download Postman | Get Started for Free Download Postman | Get Started for Free Try Postman for free! Join 25 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster. www.postman.com 템플릿 엔진을 사용하여 렌더링 하는 Controller와 API 스타일의 Controll..
DTO, DAO에 대해서
DTO란? Data Transfer Object 데이터 전송 객체 프로세스 간 데이터를 전달하는 객체 비즈니스 로직을 포함하지 않는다. 순수하게 전달하고 싶은 데이터만 포함된다. getter/setter 메소드만 가진다 DB에서 데이터를 받아 Service나 Controller로 보낸다. Entity를 DTO 형태로 변환하여 사용한다. Resopnse와 Request 모두 적용할 수 있다. 일종의 Wrapper라고 볼 수 있다. 가변적이다. DAO란? Data Access Object 실제로 DB에 접근하기 위한 객체 CRUD 기능을 수행한다. Service와 DB 사이의 연결 역할을 한다. 일반적으로 Repository package로 표현한다. 사실 거의 같다고 봐도 된다. Repository는 En..
[토비의 스프링 3.1 Vol1] "2장 테스트" 정리
2.1 UserDaoTest 다시보기 2.1.1 테스트의 유용성 내가 예상하고 의도했던 대로 코드가 정확히 동작하는지 확인하는 과정 테스트가 성공하면 모든 결함이 제거되었다는 의미 2.1.2 UserDaoTest의 특징 웹을 통한 DAO 테스트 방법의 문제점 웹 화면을 통해 값을 입력하고 기능을 수행하고 결과를 확인하는 방법이 가장 흔하다. 위 방법은 DAO에 대한 테스트로서는 단점이 너무 많다. DAO뿐만 아니라 서비스, 컨트롤러, 뷰 등 모든 레이어 기능을 만들고 나서 테스트가 가능하기 때문이다. 또한 테스트 중 문제가 생기더라도 범위가 광범위하여 원인을 알아내기 힘들다. 작은 단위의 테스트 테스트는 가능한 작은 단위로 쪼개어 집중해서 실행해야 한다. → “관심사의 분리”라는 원리가 여기에도 적용된다..