본문 바로가기

분류 전체보기

(128)
react - 헤더, 페이지 만들기 헤더웹 페이지에 있는 헤더를 만들어 주겠습니다. components - header 페이지를 만들고 header.jsx를 만들어 줍니다. ~~.jsx와 ~~.module.scss는 세트라고 생각하면 됩니다. react bootstrap을 설치하고(https://codestudycafe.tistory.com/87) 위와 같이 작성합니다. react bootstrap 공식 페이지(https://react-bootstrap.netlify.app/docs/components/navbar)에 잘 설명되어 있지만 옵션이 많으니 몇 개만 이야기해 보겠습니다. expand="lg" : 크기가 줄어들면 navbar의 모양이 바뀝니다. 언제 모양이 바뀔지 설정해 줍니다. lg는 992px입니다. Container : 화면..
webgoat CIA Triad CIA의 3요소(기밀성, 무결성, 가용성)에 대한 이야기입니다. 이 파트는 따로 실습이 있는 건 아니고 뒤에 있는 설명을 보고 문제를 푸는 것입니다. 중간고사 오픈북 테스트 보는 느낌이네요. 기밀성은 승인되지 않은 누군가에게 공개되지 않도록 하는 것입니다.무결성은 데이터의 일관성, 정확성 및 신뢰성을 유지하는 것입니다.가용성은 인증된 사람이 요청 시 액세스하고 사용할 수 있는 것입니다. 각 문제들의 정답들만 한번 살펴보겠습니다. 기밀성에 대한 이야기로 해커가 데이터베이스의 정보를 온라인에 올림으로서 훼손될 수 있습니다. 무결성에 대한 이야기로 데이터베이스의 정보를 바꿈으로서 훼손될 수 있습니다. 가용성에 대한 이야기로 서버에 서비스 거부 공격을 해서 훼손할 수 있니다. CIA 3요소 중 하나라도 훼손된다..
spring boot - db 조회 백엔드한테 정보를 달라고 했으면 db에에 해당하는 값을 가져와야 합니다. JPA를 통해 값을 가져와 봅시다.db 폴더 안에 UserRepository interface를 만듭니다. 여기에 JpaRepository를 상속받습니다. UserEntity 형식이고 primary key 타입이 long입니다. JpaRepository에 가보면 기본적으로 있는 것들이 있습니다. 이것들을 이용해 편하게 쿼리를 쓸 수 있고 직접 만들수도 있습니다. 저는 name과 password가 일치하는 레코드가 있는지 찾아야 합니다. Jpa에 findFirstByNameAndPassword 함수를 넣어줍니다. name과 password가 일치하는 것 중 하나를 찾아줍니다. 없을수도 있으니 optional을 넣어줍니다.이제 Cont..
31725 - 포닉스와 달구 step 1더보기$dp[i][j]$ : i, j 칸을 지날 때 얻을 수 있는 가장 큰 점수 이 dp값을 구해봅시다. 이걸 구하기 위해 2개의 dp를 만들겠습니다.$dp_s[i][j]$ : 시작점에서 i, j까지 올 때 얻을 수 있는 가장 큰 점수$dp_e[i][j]$ : i, j에서 끝점까지 갈 때 얻을 수 있는 가장 큰 점수 $dp_s[i][j] = max ( dp_s[i-1][j], dp_s[i][j-1] )  + A_{i,j}$$dp_e[i][j] = max ( dp_e[i+1][j], dp_e[i][j+1] )  + A_{i,j}$로 구할 수 있습니다. 그럼 $dp[i][j] = dp_s[i][j]+dp_e[i][j]-A_{i,j}$입니다. $dp[i][j]$는 i, j가 아래 그림의 빨간 칸일 ..
spring boot - filter 실제 서비스를 운영하다 보면 요청에 따라 요청과 응답을 확인하고 싶을 때가 있습니다. 이때 저희는 Filter를 사용할 수 있습니다. filter 패키지 하나 만들고 여기에 Log를 출력해 주는 LoggerFilter 클래스를 하나 만듭니다. 해당 클래스는 Component annotation을 붙여서 bean에 등록해 줍니다. @Component는 앱이 시작하는 동안 어플리케이션 컨텍스트에 추가해 주는 것인데 일단은 그냥 써줍시다. 빨간 줄에 커서를 대고 alt + enter, implement method, doFilter를 추가해 줍니다. servletRequest를 HttpServletRequest로 형변환해 주고 이를 ContentCachingRequestWrapper객체로 만들어 줍니다. re..
webgoat 개발자 도구 크롬이나 파이어폭스 등 대부분의 웹 브라우저에는 개발자 도구가 있습니다. 이것을 이용해서 네트워크 통신이나 코드 실행 등 다양한 것을 확인할 수 있습니다. ctrl + shift + i 로 켤 수 있다고 하는데 F12로고 가능합니다. 바로 문제로 넘어가 봅시다. 개발자 도구를 켜고 콘솔로 들어갑니다. webgoat.customjs.phoneHome()를 콘솔 창에 입력합니다. 이때, webgoat가 있는 창에서 실행해야 합니다. "output": "phoneHome Response is 뒤에 있는 숫자를 넣으면 해결할 수 있습니다. 6번에서는 네트워크 탭을 활용하라고 되어 있습니다. network 탭으로 간 다음 버튼을 클릭하면 network가 하나 나옵니다. 해당 요청을 누르고 payload로 가면 아..
webgoat http Proxy 프록시 서버는 클라이언트와 서버 사이에 있습니다. 여기서는 프록시를 이용해 요청&응답을 기록하고 분석하는 것을 배울 수 있습니다. 첫 페이지에 프록시에 대한 설명이 나오고 ZAP를 이용해 설치하는 방법능 쭉 알려줍니다. 하지만 저는 burp suite를 사용할 것입니다. burp suite(https://portswigger.net/burp/communitydownload)로 가서 운영체제에 맞는 burp suite를 설치합니다. 저는 community edition으로 설치했습니다. 이 전에(https://codestudycafe.tistory.com/80) 했던 대로 proxy를 세팅해 줍니다. 이때 설정한 proxy가 여기서 말한 proxy입니다. 6번 밑에 있는 문제를 보면 요청을 가로채서 이것저..
[논문 리뷰] Neural Architecture Search: A Survey(NAS) Neural Architecture Search(NAS)는 인공지능을 만들어 주는 인공지능입니다. 보통 인공지능을 만들 때 모델을 만드는데 이 모델을 인공지능을 이용해서 만들어 보자는 것입니다. 이 인공지능의 컨셉과 발전 과정 집중해서 이야기해 보겠습니다.기본 전략3가지 개념을 알아야 합니다. search space : dense net, convolution, skip connection 등 여러 레이어가 있습니다.search strategy : search space를 어떻게 탐색할지 정합니다.performance estimation strategy : 찾은 아키텍쳐가 얼마나 성능을 내는지 구합니다. 직접 트레이닝해도 되고 퍼포먼스를 예측하는 알고리즘을 도입할 수 있습니다. search strateg..
spring boot - post 전송(with data) 유저가 로그인을 한다고 가정해 봅시다. 그럼 아이디와 비번을 서버에 보낼 것입니다. 먼저 사람들이 입력을 하는 형식을 만들어 봅시다. user 밑에 model 패키지를 만들고 UserLoginRequest를 만듭니다. 이제 UserLoginRequest에 어떤 식으로 입력해야 하는지 적을 것입니다. 이름과 비번을 입력받는데 빈칸이면 안되니까 NotBlank annotation을 넣어줍니다.만약 NotBlank에서 에러가 발생하면 build.gradle에 마지막 문구를 추가해 줍니다.controllercontroller 패키지에는 아래와 같이 만듭니다. http://localhost:8080/open-api/user/login에 UserLoginRequest 형식으로 호출한다는 뜻입니다. 이걸로 로그인을 ..
spring boot - 데이터베이스 연결 백엔드에서는 데이터베이스에 있는 정보를 읽은 다음 적절한 정보들을 넘겨줍니다. 데이터베이스에 연결하는 법을 배워봅시다.우선 데이터베이스를 세팅합니다(https://codestudycafe.tistory.com/99). 저는 mysql과 workbench를 사용할 것입니다. 데이터베이스우선 데이터베이스를 설정합니다. id, name, password를 만들어 줍니다.PK는 primary key, NN은 not null, AI는 auto increase입니다. 오른쪽 아래 apply를 눌러 적용할 수 있습니다.spring boot resource 잍에 있는 application에 다음 정보를 넣습니다. ~~.yaml이 아니면 yaml으로 고쳐줍니다. 세팅한 값마다 다르니 각각이 어떤 의미인지 간단하게만 살펴..