본문 바로가기

분류 전체보기

(152)
spring boot - 시작 spring boot로 백엔드를 시작하기 위한 세팅입니다.spring initializrspring boot를 사용하기 위해 복잡한 세팅들이 있는데 이를 간단하게 해주는 사이트입니다(https://start.spring.io/). 여기서 언어, 버전, 의존성 등을 설정할 수 있습니다.몇 가지 유용한 의존성에 대해 알아보겠습니다.Lombok반복되는 부분을 아주 많이 줄여주는 annotation을 제공해 줍니다. 클래스를 만들 때 getter, setter를 통해 값을 읽고 씁니다. 그리고 toString을 통해 출력을 하고 생성자를 통해 객체를 생성합니다. 원래는 이 기능들을 구현해 주어야 하지만 Lombok 이 다 만들어 줍니다. 아니면 Data로 한 번에 만들 수도 있습니다. 그리고 @Slf4j 를 통..
웹 개발 - 프로젝트 2 - 5. streak lover 백엔드 api 백엔드에 특정 자료를 요청하기 위해서는 api를 호출해야 합니다. 이런 것을 쉽게 하기 위해 talent api를 사용할 것입니다. 크롬 확장 프로그램으로 talent api를 추가합니다. 그런 다음 크롬 - 퍼즐 모양 - 핀을 클릭해서 상단에 고정하고 talent api를 눌러줍니다. 아래와 같은 화면에서 api를 호출할 수 있습니다. api 만들기intelliJ로 가서 health controller를 만듭니다.  해당 페이지에서 다음과 같이 입력해 health api를 호출할 수 있게 만듭니다. Slf4j는 로그 출력을 위한 것입니다. talent api에서 healthapi를 호출합니다.  이것을 실행하면 성공적으로 호출되는 것을 알 수 있습니다.
webgoat 세팅 webgoat는 웹 해킹을 연습할 수 있는 워게임입니다. 세팅부터 해보겠습니다.javahttps://www.oracle.com/java/technologies/downloads/?er=221886#jdk22-windows 사이트로 가서 자바를 다운로드 받습니다. 본인의 운영체제에 맞는 파일을 다운받습니다. 파일을 받고 다음을 쭉 누르면 설치 자체는 쉽게 할 수 있습니다.이제 환경 설정을 합니다. C:\Program Files\Java로 가면 설치한 파일이 있습니다. 해당 파일 안으로 들어가서 bin을 환경변수에 등록합니다. 이제 컴퓨터를 껏다 켠 다음 cmd 창에 java -version를 입력합니다. 설치한 자바 파일이 나오면 성공입니다. webgoathttps://github.com/WebGoat/W..
[논문 리뷰] Encoder-Decoder with Atrous SeparableConvolution for Semantic Image Segmentation(DeepLabV3Plus) 일반적인 segmentation에 대해 잘 동작하는 논문입니다. U-net과 비슷한 계열이라고 할 수 있습니다. U-net 비교했을 때 무엇이 달라졌는지 알아보겠습니다.목표U-net은 의료 데이터에서 시작을 했고 해당 데이터 특성에 맞는 로스 function을 사용했습니다. 하지만 이 논문은 네트워크 구조를 향상하는 것에 목표를 두었습니다. 그러기 위해 독특한 convolution을 제안합니다. 일반적인 conv 연산은 이전 레이어의 피쳐가 10개, 필터의 너비와 높이가 3*3이라 하면 10*3*3 크기의 필터 하나가 하나의 피쳐 맵을 형성 합니다. 하지만 이거는 연산이 너무 많습니다. 그래서 아래 구조의 convolution을 제안합니다. (b)는 필터의 너비와 높이를 1*1로 만든 것으로 기존의 co..
14207 - 약수 도로 step 1더보기모든 도시를 정점으로, 도시 간 이동을 간선으로 표현하면 쉽게 문제를 풀수 있습니다. 물론 시간과 공간만 충분하다면 말이죠. 조금 더 표율적으로 하기 위해 정점 $X$ 를 $X$의 배수인 모든 정점을 하나로 뭉쳐 놓은 것이라 생각할 수 있습니다.step 2더보기답이 0이나 1인 경우는 너무 쉬우니 생략하겠습니다. 아래 예시는 예제 입력 4를 기준으로 하고 있습니다.정점들을 모두 표시한 다음 시작 점을 포함하는 출발 정점들을 표시해 봅시다. 마찬가지로 도착 정점도 표시해 줍니다. 도착 정점 $X$와 출발 정점 $Y$가 있을 때 $LCM(x,y) \le N$ 이면 $X$에서 $Y$로 가중치 0인 간선을 만들어 줍니다. 아래는 간선의 일부만 만들었습니다. 이제 BFS를 돌리면 답을 알 수 있습..
웹 개발 - 프로젝트 2 - 4. streak lover 백엔드 db 이제 백엔드 개발을 위해 스프링을 설치합니다. 우선 스프링을 설치하고(https://codestudycafe.tistory.com/98) spring initializr(https://start.spring.io/)로 갑니다. JPA, MySQL, Lombok, Spring Web를 설정해 주고 압축을 풀어줍니다.application.properties를 yaml로 바꿔주고 db 설정을 해줍니다. 그리고 workbench를 이용해 db 스키마를 만들어 줍니다. 이때, 문자는 utf8mb4를 사용합니다. 그럼 이제 db를 사용할 준비가 되었습니다.
mysql 설치 백엔드에 데이터베이스가 빠지면 안되죠. mysql과 workbench를 설치해 줍니다.docker우선은 docker를 설치해 줍니다. mysql을 도커를 이용해 돌릴 것이기 때문이죠. docker 설치 사이트(https://www.docker.com/)로 가서 설치합니다. 설치를 쭉 진행하고 컴퓨터를 재시작 해 주면 오른쪽 아래에 도커가 돌고 있는 것이 보입니다.터미널에 docker -v로 치면 버전이 나올 것입니다. 그럼 잘 설치가 되었다는 뜻입니다.검색에 mysql을 검색한 다음 pull을 받습니다. 이제 images로 가서 run을 누릅니다. optional setting이라고 나오는데 일단 그냥 넘어가 봅시다. 그럼 에러가 납니다. 비밀번호를 설정해 주라고 하네요. 아까 세팅을 안했기 때문인 것 ..
spring boot 설치 백엔드 개발을 위한 다양한 프레임 워크가 있는데요, 한때 정말 많이 쓰이던 프레임워크가 spring boot입니다. spring boot를 시작하는 과정을 보여드리겠습니다. intelliJ저는 intelliJ를 이용해서 개발을 할 것입니다. 크롬에 intellij를 입력해서 공식 홈페이지(https://www.jetbrains.com/ko-kr/idea/)로 이동합니다. 무료로 사용할 것이기 때문에 community 버전을 설치합니다.. 설치 파일을 시작하고 나오는 창에서 아래와 같이 선택해 줍니다. 다음을 계속 눌러 설치를 진행해 줍니다. 설치를 마친 다음 메모리 사용량을 조금 늘려 주겠습니다. 옵션의 VM option으로 갑니다. 최소와 최대 메모리 사용량을 조절해 줍니다. 저는 1G, 2G로 설정했..
21034 - Go To Goal 문제 번역더보기0번 칸부터 $ 2N + M$번 칸까지 $2N + M + 1$개의 칸이 있는 게임 판이 있습니다. 당신은 0번 칸에 있고 특수 카드 $N$장과 일반 카드 $M$장을 가지고 있습니다. 특수 카드를 사용하면 2칸을, 일반 카드를 사용하면 1칸을 갈 수 있습니다. 이때, 특수 카드는 연속해서 3번 사용할 수 없습니다. 마지막 칸에 도착할 수 있는 경우의 수를 구하세요.step 1더보기$N$과 $M$이 작으면 dp로 해결할 수 있습니다. 하지만 그러기에는 드가 너무 많죠. 결국 경우의 수를 구하는 문제니 수학으로 접근해 봅시다.0부터 시작하는 카운트가 하나 있다 생각해 봅시다. 특수 카드를 쓰면 카운트가 1 증가하고 일반 카드를 쓰면 카운트가 0으로 초기화 됩니다. 카운트가 2를 넘지 않도록 모든..
[논문 구현] You Only Look Once:Unified, Real-Time Object Detection(YOLO v1) 구현 모델 구현모델 구현 자체는 상당히 쉽습니다.우선 Conv 부분을 먼저 만들어 줍니다.아래와 같이 만들어 줍니다. 그리고 밑에 Dense를 사용합니다. 이때, gpu 메모리가 터진다고 경고를 할 때가 있는데 껐다 켜면 해결이 됩니다. 최종적으로 7*7*(3+5*2)로 나옵니다. 3은 클래스의 수입니다.로스로스를 구현해 보겠습니다. 우선 오브젝트가 있는 것과 없는 것으로 나눕니다. 오브젝트가 있는 각각의 셀을 박스 예측과 클래스 예측으로 나눕니다. 한 피쳐 픽셀 당 2개의 바운딩 박스를 예측하므보 5*2 개를 뽑아냅니다. 오브젝트가 없는 것에 대해 confidence score를 계산합니다. 예측한 바운딩 박스와 타겟의 바운딩 박스의 IOU를 구한 다음 가장 많이 겹치는 박스를 구합니다. 셀 당 2개의 박스..