작업한 react프로젝트를 배포하기 위해 build를 해야 하는 경우 yarn을 이용해 간단하게 작업 할 수 있습니다.

 

cmd창에서 작업한 폴더로 이동 후

yarn build

명령을 입력 하시면 

와 같은 화면이 출력 되고 해당 폴더 하위에 build폴더가 생성되고 압축파일들이 생기는걸 볼 수 있습니다.

build시 나오는 문구중 package.json 파일에 homepage 설정을 통해서 빌드할 경로를 관리 할 수 있다고 나오는데

자신이 작업하는 react프로젝트 package.json파일에

와 같이 "homepage" : "빌드경로" 를 지정 해주실수도 있습니다.

반응형

'javascript > react' 카테고리의 다른 글

react naver map 연동  (0) 2022.03.17
react 에서 fontawesome 사용하기  (0) 2022.03.17
react 에서 bootstrap 사용하기  (0) 2022.03.08
window react 개발 환경 설정  (0) 2021.06.21
Posted by 질주하는구
,

기본 셋팅이 마무리 되었고 어떤 구성으로 소스를 생성 할지도 결정 했으니 OpenApi를 호출하는 componet를 작성 해보겠습니다.

ApiCallComp 는 검색 조건을 전달 받아 api를 호출 하고 그 결과를 return 해주는 아주 간단한 소스 입니다.

URL 호출은 HttpClient 패키지를 통해서 작업 하겠습니다.

저는 편한 okhttp를 주로 사용 했는데 HttpClient를 사용하는 이유는 해당 패키지가

https://docs.upbit.com/reference/%EC%A0%84%EC%B2%B4-%EA%B3%84%EC%A2%8C-%EC%A1%B0%ED%9A%8C

 

업비트 개발자 센터

업비트 Open API 사용을 위한 개발 문서를 제공 합니다.업비트 Open API 사용하여 다양한 앱과 프로그램을 제작해보세요.

docs.upbit.com

업비트 api의 예제 소스로 사용되는 패키지 이기 때문 입니다.

http연결 부터 뭔가 강력한 신뢰를 느낄수 있습니다.(http연결 관련한 라이브러리는 워낙에 잘 되어 있어서 무엇을 사용하던 상관 없습니다. 개인적으로는 okhttp를 추천하고 싶습니다.)

 

@Component("apiCallComp")
public class ApiCallComp {
	private String serviceUrl = "http://apis.data.go.kr/B552061/frequentzoneChild/getRestFrequentzoneChild";
	
	//application.properties의 설정 정보를 가지고 올때 @Value("${설정key}") 형식으로 호출
	@Value("${openApi.serviceKey}")
	private String serviceKey;
	
	public String callAccidentAreaInfo(SearchParamVO paramVO) throws ClientProtocolException, IOException {
		HttpClient client 				= HttpClientBuilder.create().build();
        HttpGet request 				= new HttpGet(serviceUrl+"?"+URLEncodedUtils.format(makeParameterList(paramVO.getSearchYear(), paramVO.getSearchSiDo(), paramVO.getSearchGuGun(), paramVO.getSearchPageNo()), "utf-8"));
        HttpResponse response 			= client.execute(request);
        HttpEntity entity 				= response.getEntity();
        
        String returnJson				= EntityUtils.toString(entity, "UTF-8");
		return returnJson;
	}
	
	public List<BasicNameValuePair> makeParameterList(String searchYearCd, String siDo, String guGun, String searchPageNo){
		List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
		
        params.add(new BasicNameValuePair("ServiceKey", serviceKey));
        params.add(new BasicNameValuePair("type", "json"));
        params.add(new BasicNameValuePair("searchYearCd", searchYearCd));
        params.add(new BasicNameValuePair("siDo", makeSiDoCode(siDo)));
        params.add(new BasicNameValuePair("guGun", makeGuGunCode(guGun)));
        params.add(new BasicNameValuePair("numOfRows", "10"));
        params.add(new BasicNameValuePair("pageNo", searchPageNo));        
        
        return params;
	}
	
	//법정동 코드값 앞 2자리만 사용 (ex>4111100000 -> 41)
	public String makeSiDoCode(String siDo) {
		return StringUtils.substring(siDo, 0, 2);
	}
	//법정동 코드값 2~5자리만 사용  (ex>4111100000 -> 111)
	public String makeGuGunCode(String guGun) {
		return StringUtils.substring(guGun, 2, 5);
	}
	
}

특별한 내용은 없고 service키를 가지고 오기 위해 application.properties 파일에 openApi.serviceKey 프로퍼티를 추가 했습니다.

추가로 get방식으로 호출시 현재 소스는 BasicNameValuePair 를 이용하고 있지만 다른 방법으로 아래와 같은 방법도

존재 합니다.

URIBuilder builder = new URIBuilder();
builder.setScheme("http")
		.setHost(host)
		.setPort(port)
		.setPath(yourpath)
		.setParameter("column1", "data1")
		.setParameter("column2", "data2");

파라미터 전달 시 편한 방법으로 선택 해서 소스 구성을 해주시면 됩니다.

현재 소스에서는 응답 실패에 대한 처리가 되어 있지 않은데 서비스 하시려는 소스 에서는 관련 소스가 추가 되어야

합니다.

반응형
Posted by 질주하는구
,

사용자 화면에서 호출할 backend 작업 부터 진행을 합니다.
작업할 내용이 많지 않기 때문에 gradle 구성을 간단하게
(data-jdbc, data-jpa, web, web-service, lombok, h2database, querydsl-jpa)
기준으로 작성 해줍니다.

패키지 구성은 아래의 이미지와 같습니다. 패키지 구성은 큰 의미가 있는건 아니고 제가 개인적으로 작업 시에 많이 사용하는 구성 입니다.

(패키지 구성, 함수명, 클래스명 변수명 언제나 고민이 많으실텐데 상황에 맞게 구성하는게 좋다고 생각 합니다. 가장 중요한건 룰을 만들 없으면 그 룰을 지키는 거라고 생각 합니다. 제가 만든것도 잘 안지키니...)

DB에 저장된 내용은 법정동 코드를 조회하기 위한 테이블 하나 이기 때문에 그에 상응 하는 domain이 하나만(아... 오타 있네...) 존재 하고 역시 관련 repository도 하나만 존재 합니다. custom, impl 패키지가 비어 있는데 이건 queryDsl을 

사용하는 경우 채워지는 영역이라 현재는 비어 있습니다.(앞으로도 비어 있을거라 삭제 하게 될거 같습니다.)

answer패키지 하위로 실제 작업을 진행할 controller, service, dto 관련 패키지를 생성 했습니다.

resources 하위에는 application.properties이외에 h2 database초기화에 사용할 schema.sql과 data.sql이 자리 잡고 있습니다.

 

다음 페이지 부터는 설정 및 개별 소스에 대한 간단한 설명을 작성 하겠습니다.

spring-boot패키지 생성시 선택한 옵션은 아래 사진과 같습니다.

반응형
Posted by 질주하는구
,