전체 글

기록합시다.
ERROR

[ERROR] CORS React (CRA) + JAVA 11

🥕 서버 쪽 포트는 8080 / front 쪽 포트는 3000을 쓰고 있다. 😢 back : springboot java 11 🤢 front : react node 8080 서버로 API 요청시 요청값은 다음과 같이 온다. back단의 response header에 Access-Control-Allow-Origin 설정을 한다면, 모든 요청 response에 header를 설정해야 한다. 로컬환경에서는 처리하지만, 소프 배포이후에는 nginx 나 apache의 proxy 설정이 필요하다. 🤨 클라이언트쪽의 proxy 설정을 통해 해결 할 경우 다음과 같다. 1. 미들웨어 설치로 설정 $ npm install http-proxy-middleware --save $ yarn add http-proxy-mid..

AWS

[AWS S3] object 여러 건 삭제 요청

목적 : 삭제 총 타겟 : DB상에 있는 데이터 기준으로 1억 8천만 건에 해당. JAVA 에서 aws SDK 를 이용한 삭제 요청시에는 1회 요청 최대 오브젝트 수가 1000개로 제한되어있음. 따라서 비동기방식으로 DB의 데이터를 1000건씩 조회 해서 삭제 요청을 계속 던지는 쓰레드를 구현 하려 함. controller : @ApiOperation(value = "aws s3 object delete api", notes = "") @RequestMapping(value = "/del/{offset}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity s3DeleteObjList(..

ERROR

[ERROR] problem: package org.junit does not exist

junit 사용 시 build 과정에서 못찾는 문제가 있음. 해결책 1. build and run using : gradle -> intelij IDEA Run tests using: gradle -> intelij IDEA 해결책 2 : 프로젝트 구조 중 src/test/java --> 에서 src/main/test로 변경. 나도 이렇게 해결.

MOBILE

[ERROR] / No apps connected. sendng "reload" to all React ...

No apps connected. Sending "reload" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB 안드로이드 adb devices 명령어로 기기 연결되어있는지 확인 부터 해야 한다. # Reset metro bundler cache : `npx react-native start --reset-cache` # Remove Android assets cache : `cd android && ./gradlew clean` # Relaunch metro server : `npx react-native run-android` 이후에 npm run a..

ALGORITHM

DFS java

🍕깊이 우선 탐색 : 미로를 탐색할 때 한 방향으로 갈 수 있을 때까지 계속 가다가 더 이상 갈 수 없게 되면 다시 가장 가까운 갈림길로 돌아와서 이곳으로부터 다른 방향으로 다시 탐색을 진행하는 방법과 유사하다. 즉, 넓게(wide) 탐색하기 전에 깊게(deep) 탐색하는 것이다. https://gmlwjd9405.github.io/2018/08/14/algorithm-dfs.html [알고리즘] 깊이 우선 탐색(DFS)이란 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io 깊이 우선 탐색(DFS)이 너비 우선 탐색(BFS)보다 좀 더 간단하다. 단순 검색 속도 자체는 너비 우선 탐색(BFS)에 비해서 느리다. 최단경..

ALGORITHM

JAVA 미로탐색 / BFS

😒 BFS / Breadth-First Search / 너비 우선 탐색 너비 우선 탐색 : 하나의 정점에서 시작해서 차례로 모든 정점을 방문하게 된다. 따라서 특정 도시에서 다른 도시로 가거나, 미로의 최단 거리를 찾거나, 보통은 두 좌표 사이의 ( 노드 사이의 ) 최단 경로 혹은 임의 경로를 찾기 위해 쓴다. 🥕 구현 시, 특정 좌표 ( 노드 ) 를 방문한것에 대한 여부를 반드시 검사해야 한다. 검사하지 않는다면 무한 루프에 빠질 위험이 존재한다. 방문한 노드를 차례로 꺼낼 수 있는 자료 구조인 Queue 를 사용. 즉 선입선출이 원칙이다. 🥕 왜 최단 거리가 되는가 ? https://wikidocs.net/125662 참조 : 미로탐색과 같은 문제를 BFS를 구현하다보면, 누구나 한 번씩은 의구심을 ..

JAVA

java directory copy / progress bar

😒 test용으로 구현 java 1.8 사용 😒 에이전트의 FS 기능 개발 중 필요해서 구현. 특정 디렉토리 경로 및 모든 하위 파일을 file output stream으로 쓰면서 소스와 타겟의 바이트단위 크기를 비교한다. 재귀호출을 통해 디렉토리안의 디렉토리도 모두 확인하도록 구현. 1. static 변수를 통해 진행률 등 기록하는 방식. 2. static 변수 없이, 파라미터로 처리하는 방식. 멀티 스레드 환경에서 전역변수를 참조하면 전역변수의 값이 꼬이므로, 2번의 방식이 적합함. FileDownloaderTest.java package test; import com.gemiso.ariel.common.util.FileUtil; import java.io.*; public class FsCopyDi..

JAVA/SPRING

springBoot / mapstruct

🍟 dto entity 변환 시, mapstruct 라이브러리를 사용하는 방법이 있다. 세팅 : build.gradle dependencies { //MapStruct annotationProcessor 'org.mapstruct:mapstruct-processor:1.4.2.Final' implementation 'org.mapstruct:mapstruct:1.4.2.Final' } mapper * UserMapper로 구현함. package com.org.walk.user; import com.org.walk.util.EntityMapper; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; @Mapper public interfa..

AWS

EC2 포트포워딩

🥃 외부 접속 ip 및 port 정보를 내부 port 로 매칭시키려 함. EC2 인스턴스 준비는 생략. $ sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 9300 -j REDIRECT --to-port 9300 $ sudo iptables -t nat -L --line-numbers AWS EC2 를 쓰고 있으므로 사용 인스턴스의 인바운드 규칙에 port를 설정해야 한다. * 아웃바운드 규칙은 기본적으로 모두 열려있다. 잘 열렸는지 체크. $ echo > /dev/tcp/127.0.0.1/[port] $ echo &? echo $? 에서 리턴이 0으로 온다면 잘 실행되었다는 뜻임. * 기타 이유로 삭제가 필요 할 경우 : $ sudo iptable..

JAVA

springboot / querydsl 설정

🥕 querydsl 설정을 통한 Q클래스 작동 및 실행 확인까지. # springboot 2.7.0 build.gradle buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'org.springframework.boot' version '2.7.0' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id 'war' id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } configurations { compileOnly { extendsFrom annotationProcessor } } dependencies { //..

girin_dev
girin_dev