본문 바로가기

전체 글

(51)
4/10-4/14 WIL - 왜 나만 안 돼 JWT spring+react로 게시판만들기를 진행중이다. 회원가입 후, DB에 회원정보 저장까지 완료되어 JWT로 로그인 및 인증/인가 시스템을 구현하려 했다,,, 여러 버전(11.5~12.3)과 예제들, 공식 깃헙 문서까지 보면서 시도했다. io.jsonwebtoken은 겨우겨우 설치했지만, 왜인지 springboot-security 의존성은 추가되지도 않고, 기본적인 security가 없으니 어떤 예제도 따라할 수 없었다 ㅠㅠ 이렇게 JWT에만 매달릴 수는 없다..시간이 없음! 내 우회책은 SHA256을 이용하는 것이다. 아래 블로그를 참고했다. SHA256 암호화 알고리즘을 이용한 회원가입, 로그인 유저가 보내온 PW를 암호문을 이용해 암호화하고, 이 암호화 된 PW와 암호문을 DB에 저장한다. 이후, ..
[Spring] CORS 설정으로 오류 해결 Access to XMLHttpRequest at 'http://localhost:8080/login' (redirected from 'http://localhost:3000/login/welcome') from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. 이런 오류가 발생해서 프론트->서버로 데이터 전달이 불가능했다. 여러 해결책을 찾아봤는데 프록시 설정은 이미 되어 있었고, 저 C..
[PintOs] Project 3 : Virtual Memory PintOs의 세 번째 프로젝트 VM 구현 진행은 아래와 같다. 1. 보조 페이지 테이블 & frame 구조체 구현 2. Anonymous 페이지 & Lazy Loading & page fault 구현 3. Stack growth & 스택에 대한 page fault 처리 추가 4. File-backed 페이지 & mmap, munmap 구현 5. Swap In/Out 구현 기존에 사용하던 페이지 테이블 - pml4 이외에 pml4이 담지 못하는 정보를 위한 보조 페이지 테이블을 구현해야 한다. 보조 페이지 테이블은 배열, list, hash, bitmap 등 pintos에서 제공하는 자료구조 중 원하는 것을 선택해 사용하면 된다. 우리는 hash를 선택했다. gitbook에서 가볍게 추천하기도 했고, 늘..
[Spring+React] 리액트에서 보낸 json 스프링에서 받기 스프링 부트 - Backend 리액트 - Frontend 로그인 기능을 위해 form에 작성한 유저 정보를 스프링 서버로 전송하는 작업을 하고 있다. form의 정보를 작성하는 내용에 따라 변경시키는 건 useState를 사용하고 있다. 스프링도 리액트도 완전 처음 쓰는 프레임워크라서 영...모르겠다 싶었는데 여러 블로그를 보다보니 감이 잡힌다. useState 선언 const [userid, setId] = useState(''); const [password, setPW] = useState(''); 앞은 사용할 변수명, 뒤는 변수값 변경에 사용할 함수명이다. useState()안에 작성하는 매개변수는 초기화하는 값. 정확하지는 않은데, 변수 정의와 사용할 함수가 같은 scope 안에 있어야 작동한다..
[PintOs] PROJECT 2 : USERPROG 크래프톤 정글 8-9주차 Project 2는 사용자 프로그램에 대한 구현으로 사용자가 이용할 시스템콜에 대한 구현이 중점이다. Argument Passing 터미널에서 프로그램을 실행할 때, 프로그램에서 사용할 변수를 함께 입력하는 경우가 있다. 우리가 기본 코딩 스켈레톤에서 자주 볼 수 있는 main(argc, argv[])를 보면, 두 매개변수 중 argv[]가 프로그램 시작과 함께 입력받은 인자 배열이다. 이 인자로 들어온 문자들을 프로세스마다 갖고 있는 USERSTACK에 직접 Push하는 작업을 구현해야 한다. 프로세스가 사용하는 스택은 두 종류가 있다. 유저스택과 커널스택, 두 스택 모두 각 프로세스마다 고유한 가상 메모리 구역을 받는다. USER가 사용하는 스택은 User Mode에서 호출하..
4/3 (수) TIL - PintOs Project 3 마무리 ! 오늘의 결과 ! 오늘의 오류 해결 1 file_page 구조체 file-backed page를 표현하기 위한 구조체다. 기존에 틀만 존재하던 구조체에 여러 멤버를 추가했다. 처음에는 uninit 구조체를 따라 작성해 type, va 등을 추가했고, 이후 파일 관련 작업을 위해 다른 멤버들을 추가했다. struct file_page { // enum vm_type type; void *aux; // void *va; // size_t read_bytes; // size_t zero_bytes; // off_t ofs; // struct file *file; }; 1-1 struct file 위 구조체는 file_backed_initializer()에서 초기화를 진행하는데, 기존에는 aux가 아니라 각 ..
4/2 (화) TIL - 오늘의 일지 (mmap, swap disk) ! 오늘의 결과 ! 오늘의 알게된 점 페이지와 물리메모리의 맵핑을 끊어줘야 한다는 것을 나는 page->frame에 대한 가시적인 처리를 하라는 얘기로 생각했다. 그래서 page->frame = NULL로 끊어줘보기도 했는데 계속 page->frame의 접근이 page fault가 발생했었다. 알고보니 직접적인 처리가 아니라 pml4_clear_page()를 통해 해당 페이지의 참조 비트와 물리 주소와의 관계를 clear 시키라는 얘기였다...아직 이해가 덜 되었나보다. ! 오늘의 실수 (트러블 슈팅) 1. reopen한 파일을 써야하는데 reopen 해놓고 기존 파일을 사용하고 있었다. 또 멍청이슈... file.c의 do_mmap()에서는 process.c의 lode_segment와 거의 같은 흐름을..
4/1 (월) 오늘의 TIL - Stack glowth 성공 오늘은 스택 글로우에 대한 테스트케이스를 모두 성공하고, mmap, munmap 구현을 시작했다. ! 오늘의 속상한 점 palloc을 포기했다... page-linear 등 페이지와 관련된 테스트 케이스는 굉장히 큰 크기의 페이지를 할당받으려 하는데, 우리는 palloc을 사용하면서 하나의 페이지만 처음에 할당하기 때문에 케이스를 통과하지 못했다. malloc의 경우 2MB 정도의 큰 크기로 메모리를 할당하기 때문에 malloc을 써서 통과할 수 있었다. 물론 페이지의 크기를 PGSIZE로 나눈 값만큼 palloc_get_multiple(size) 해주면 가능할 것 같다! 그런데 굳이 계산을 더 추가할만큼 palloc의 메리트가 있냐하면 그렇지는 않아서...더 간단하게 malloc을 사용했다..아쉽다 케..