[Error] EPERM: operation not permitted, uv_cwd
2024. 12. 5. 09:44
프로그래밍/React
mui 를 클론하고 npm install 을 실행하는 중 아래의 에러가 떴음/Users/username/.nvm/versions/node/v22.12.0/lib/node_modules/npm/lib/cli/validate-engines.js:31 throw err ^Error: EPERM: operation not permitted, uv_cwd at process.wrappedCwd (node:internal/bootstrap/switches/does_own_process_state:142:28) at process.cwd (/Users/username/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/graceful-f..
[JAVA] 홈택스 인증서 로그인 다시 구현(업데이트 된 부분 반영)
2024. 11. 27. 20:41
프로그래밍/JAVA
몇 달 전 홈택스 공인 인증서 로그인 + 매입/매출 계산서 조회 부분을 구현했는데 11월 2일 홈택스 고도화 작업으로 인하여 api 등 꽤 많은 변경사항이 있었고 에러가 떴음 변경된 부분 파악하고 업데이트를 하기로 했음 크게 변경된 부분은 로그인을 위한 pkcEncSsn 을 가져오기 위한 API 통신을 할 때, 먼저 쿠키를 세팅해 주는 부분과기존에는 API 요청과 응답을 xml로 통신 했다면 json으로 바꼈다는 점 이를 염두해 두고 서비스 전체 코드를 수정함String getPkcEncSsnUrl = "https://www.hometax.go.kr/wqAction.do?actionId=ATXPPZXA001R01&screenId=UTXPPABA01";// pkcEncSsn, cookies 값 얻기Resp..
[Java] 홈택스 공동 인증서 로그인_3
2024. 9. 24. 20:38
프로그래밍/JAVA
마지막 단계인 공동 인증서 로그인 하기 API URL : https://www.hometax.go.kr/pubcLogin.do?domain=hometax.go.kr&mainSys=Y이전 페이지 들에서 가져왔던 값들을 header와 params에 세팅해주고 POST 메서드로 통신을 한 후 Response를 받아오기이 Response에는 전자 세금 계산서 조회에 필요한 TXPPsessionID가 들어있음 1. header 및 params 세팅앞서 설명한 내용대로 쿠키와 파라미터를 세팅해주기String url = "https://www.hometax.go.kr/pubcLogin.do?domain=hometax.go.kr&mainSys=Y";HttpHeaders headers = new HttpHeaders(..
[Java] 홈택스 공동 인증서 로그인_2
2024. 9. 11. 20:05
프로그래밍/JAVA
다음으로 쿠키 세팅과 파라미터 세팅을 해야함 1. 인증서 로그인에 필요한 쿠키를 세팅헤더세팅 값Content-Typeapplication/x-www-form-urlencoded; charset=UTF-8CookieWMONID, TXPPsessionID https://www.hometax.go.kr/wqAction.do?actionId=ATXPPZXA001R01&screenId=UTXPPABA01위의 API GET 요청을 통해 쿠키 정보를 가져와 WMONID, TXPPsessionID 정보를 세팅하고, 파마미터 세팅에 중요한 값인 Response에서 pkcEncSsn에 담긴 값을 가져옴 아래와 같이 Header 세팅을 해줌HttpHeaders headers = new HttpHeaders();header..
[Java Error] java.security.NoSuchProviderException: No such provider: BC
2024. 9. 5. 20:40
프로그래밍/JAVA
java.security.NoSuchProviderException: No such provider: BC 에러 원인과 해결 방법 원인 Cipher cipher = Cipher.getInstance("SEED/CBC/PKCS5Padding", "BC");위의 코드를 실행했더니 아래의 에러가 났음 먼저 코드를 살펴보자SEED 알고리즘은 java.security의 Provider에서 제공하지 않는 알고리즘이기에 org.bouncycastle 를 gradle에 추가해서 가져오려고 했음// gradleimplementation group: 'org.bouncycastle', name: 'bcprov-jdk18on', version: '1.77'implementation group: 'org.bouncycastl..
[Postman] 브라우저 요청 복붙하기
2024. 9. 2. 20:43
프로그래밍/관련 정보
브라우저에서 API 통신을 하는 경우 그 정보를 그대로 가져와서 사용하고 싶을 때가 있음그럴때는 간단하게 cURL 을 복사해와서 import 해서 사용하면 되는데 그 방법을 공유하고자 함 1. API 통신 원하는 요청 찾기F12 로 개발자 도구 들어가기 > 네트워크 탭 클릭 > 원하는 요청 찾기 2. 우클릭하여 cURL 복사 클릭 3. Postman에서 import 클릭하여 붙여넣기Ctrl + v 하면 알아서 import 됨👍
[React Native] WebView 사용 방법
2024. 6. 3. 17:20
프로그래밍/React Native
React Native에서 기본 웹 브라우저를 통해 URL 여는 방법React Native 모듈에서 제공하는 Linking을 사용하면 간단하게 구현 가능함https://carpet-part1.tistory.com/942 라는 사이트를 웹뷰로 열고 싶다면, Linking.openURL 사용해서 링크를 열어주면 됨 코드 예시import React from 'react';import { Button, Linking } from 'react-native';const Component = () => { const openWebView = () => { Linking.openURL('https://carpet-part1.tistory.com/942'); }; return ( );};export ..