본문 바로가기

728x90

전체 글

네이버의 x.509 인증서(certificate) 서명값(signature) 검증해보기 HTTPS의 인증방식 → 인증서 만들기 → 인증서 서명의 정체에 대해 궁금해서 오게 되었습니다. 인증서를 서명할 때 어떤 데이터를 개인키로 암호화하는지? 인증서 서명을 공개키로 복호화하면 정말로 데이터를 해쉬한 값과 같은 해쉬값이 나오는지? 궁금하신 분들이 읽으면 좋습니다. 전자 서명 과정 위 그림은 전자 서명에 대한 그림입니다. 서명(Signing)은 Data를 해쉬(HASH)된 값으로 나타낸 뒤, 개인키로 RSA로 암호화하는 과정을 수행합니다. 검증(verification)에서는 공개키를 사용해 암호화를 복호화시킨 해쉬값과 Data를 해쉬로 변환한 값을 비교하여 검증합니다. 네이버 d2에 나와있는 이 그림이 가장 x509 인증서 서명을 잘 나타내고 있다고 생각해서 가져왔습니다. 인증서 발급 과정을 예.. 더보기
프로젝트 B. 프로모션 웹페이지 만들기 - 코드 리뷰 및 회고(웹 UI 개발) www.boostcourse.org/web344/joinLectures/78637 웹 UI 개발 부스트코스 무료 강의 www.boostcourse.org 배경이미지와 주요 아이콘이미지는 전부 제공을 해주네요. IR(Image Replace) 기법을 이용해야 진행할 수 있는 프로젝트입니다. 평소 웹 페이지를 별 생각없이 사용했던거 같은데, 웹 접근성이라는 관점으로 볼 수 있게 해준 프로젝트였네요. Advice h1은 한 페이지에 하나만 사용하자 Foodwidth에 여러분을 초대합니다! 또한 태그는 페이지에 체계적, 순차적으로 작성해야한다고 합니다. 페이지 당 하나의 만 사용하세요. 여러 개를 써도 오류는 나지 않겠지만, 단일 이 모범 사례로 꼽힙니다. 논리적으로 생각했을 때도, 은 가장 중요한 제목이므로 .. 더보기
GNL(Get Next Line) 문제 이해하기 GNL을 처음 접하고 도대체 뭘 만들라고 하는 건지, 문제에 대한 방향성을 잡기 바란다는 마음으로 이 글을 작성하였다. 보너스 문제를 도전하거나, 문제를 이해한 분들에게는 도움이 되지 않을 것이라고 생각한다. 사용한 테스트 툴 https://github.com/charMstr/GNL_lover https://github.com/Hellio404/Get_Next_Line_Tester https://github.com/Mazoise/42TESTERS-GNL https://github.com/C4r4c0l3/gnl-war-machine-v2019 https://github.com/DontBreakAlex/gnlkiller https://github.com/mrjvs/42cursus_gnl_tests 이중에 G.. 더보기
netwhat 문제 풀이 Q. What is the maximun number of IP addresses that can be assigned to hosts on a local subnet that uses the 248.0.0.0 subnet mask? Q. 248.0.0.0 서브넷 마스크를 사용하는 로컬 서브넷의 호스트에 할당 할 수 있는 최대 IP 주소 수는? A. 134217728 - 2 = 134217726 해설. 서브넷 마스크를 사용하면 Host IP주소와 AND연산하여 Network 부분의 정보를 걸러낼 수 있다. 문제에서 주어진 서브넷 마스크 248.0.0.0를 bit로 바꾸면 아래와 같다. 1111 1000.0000 0000.0000 0000.0000 0000 1은 네트워크 영역, 0은 호스트 영역을 의미하게.. 더보기
ft_printf 사용한 테스터기 https://github.com/gavinfielder/pft - 단위테스트 통과 https://github.com/charMstr/printf_lover_v2 - 모든 테스트 통과 https://github.com/Mazoise/42TESTERS-PRINTF - 모든 테스트 통과 https://github.com/AntoineBourin/printf-tester - 모든 테스트 통과 총 4개의 테스터기를 사용했고, 보너스는문제는 풀지 않았다. 개인적으로 처음 코드를 짜면서 테스트를 할때는 printf_lover_v2를 추천한다. 서식지정자 하나하나 단위테스트를 하기 쉬웠던거 같다. 기본으로 구현해야하는 것 기본점수만 받고 싶다면 구현해야 하는 서식지정자들은 다음과 같다. %c %s %.. 더보기
프로젝트E. 예약 : 한줄평 관련 web API 만들기 - 코드 리뷰 및 회고(웹 백엔드) www.boostcourse.org/web326 웹 백엔드 부스트코스 무료 강의 www.boostcourse.org 총 두번에 걸쳐서 통과를 했네요. 생각보다 코드 제출 후 리뷰 및 피드백을 받는 기간이 길었네요. 평가하시는분이 많이 없으신듯 합니다. ㅠ 다운로드/업로드 기능을 구현해야합니다. #Advice 인터페이스의 멤버변수는 상수만 허용하기 때문에 Static final 생략 가능 public interface CommentService { // static final int LIMIT = 5; int LIMIT = 5; } 파일 타입 체크 로직 수정 private boolean checkImageMimeType(Path path) throws IOException { String mimeType .. 더보기
Spring 현재 날짜를 기준으로 업로드 폴더 생성 및 업로드 Service Layer 에서 파일 업로드 구현 @Value("${local.files-path}") String rootPath; //properties에서 저장할 로컬 루트 경로를 가져온다. @Override @Transactional(rollbackFor = Exception.class) public void storeFile(MultipartFile file) { Date createDate = new Date(); String year = (new SimpleDateFormat("yyyy").format(createDate)); //년도 String month = (new SimpleDateFormat("MM").format(createDate)); //월 String day = (new Sim.. 더보기
프로젝트 D. Spring Security를 이용한 로그인하기 및 예약 관련 web API 만들기 - 코드 리뷰 및 회고(웹 백엔드) www.boostcourse.org/web326 웹 백엔드 부스트코스 무료 강의 www.boostcourse.org 완성하는데 생각보다 오래걸린 프로젝트였는데, 한번에 Pass가 뜨니 행복하네요. 강의에서 배운 스프링 시큐리티를 사용해 인증 유저만 접근할 수 있도록 API 컨트롤러를 만드는게 프로젝트였습니다. 개인적으로 로그인 기능보다 서비스 레이어, DAO레이어, 컨트롤러 레이어를 어떻게 나누고 서로간의 어떤 형태의 데이터를 가지고 통신(?)을 할지 많이 고민을 했네요. 기존 프로젝트에서는 DTO만 사용했으나, 이번프로젝트에서 VO(Value Object), Entity, DTO(Data Transfer Object)를 전부 만들어서 작업했습니다. 올바른 방법일지는 모르겠으나 생각했을 때 가장 역할 분.. 더보기

728x90