본문 바로가기

전체 글142

30만원짜리 OPENAI의 GPT 오퍼레이터 사용후기 오늘 떨리는 마음으로 ChatGpt pro 플랜을 결제했다. ChatGPT Pro 플랜을 결제한 이유심층리서치와 4.5를 기다린 끝에 plus 플랜에서 제한된 사용량으로나마 사용해 볼 수 있었으나너무 아쉬운 제한 횟수였다.4o가 꽤 유연했지만, 정확도 측면에서는 다소 아쉬운 부분이 있었다.할루시네이션이 4o에 비해 대폭 감소한 4.5모델이 매력적이었다. 특히나 4o 버전에서 전혀 읽지못했던 사내식단을 4.5부터 거의 정확하게 읽어내기 시작했다.표자체가 구분도 명확하지 않고 병합이 불규칙하게 이뤄져 있는 형태여서 AI를 활용해서 읽어내기는 사실상  포기상태였는데4.5를 좀더 진득하게 써보고 싶었다. 기대했던 기능 vs 실제 사용 후기가장 기대됐던 operator 미국에서만 사용가능했었으나 어느샌가 한국에서.. 2025. 3. 18.
402: PAYMENT_REQUIRED Code: OPTIMIZED_IMAGE_REQUEST_PAYMENT_REQUIRED 환장할 노릇이었다.오라클 무료 스토리지를 사용중인데 아직 용량도 한참 남았고, 트래픽이 그렇게 많지도 않았을텐데 어째서  402: PAYMENT_REQUIRED Code: OPTIMIZED_IMAGE_REQUEST_PAYMENT_REQUIRED 이런 오류가 뜨는지 찾다보니 image-optimization-image-transformationsvercel 에서 제공하는 이미지 최적화 기능이 사용량이 다 돼서 문제를 일으킨것..아직 9일인데 벌써..?아무쪼록 사용자가 접속할때 최적화를 위해 하나의 next/image 를 쓰며이미지를 여러사이즈로 변환하고, vercel 측의 CDN에 저장해서 최적화된 버전을 유저들에게 제공하다보니뭐 제한량이 5000건 정도로 제한이 있고, 가격이 만만치 않아보여서그냥 opt.. 2025. 3. 9.
NextJS14 next-intl 설정중 0개의 인수가 필요한데 1개를 가져왔습니다. 우선 필자의 환경은 CRA -> NextJS14로 마이그레이션 한 상태로typescript 버전이 4.9.5"next-intl": "^3.26.3" 에서 발생함App router 를 사용중이어서https://next-intl.dev/docs/getting-started/app-router/with-i18n-routing 절차에 따라 진행하던중routing.ts 설정에서TS2554: Expected 0 arguments 오류가 발생하는데import { defineRouting } from 'next-intl/routing';import { createNavigation } from 'next-intl/navigation';export const routing = defineRouting({ local.. 2025. 1. 19.
AST를 활용한 코드내 한글추출 코드 내 다국어 처리를 위해 코드 내의 한글을 안정적으로 추출하기 위해 정규 표현식을 통해 한글을 추출하려다 보니 다양한 문제에 직면했습니다.주석 제거JSX 내 태그들 사이의 한글 추출과 여러 메서드들 내에서 사용된 한글 추출LangPack.getText() 처리 된 데이터 제외// , , /* */ 등 주석을 제거해야 했고각종 태그 들 사이의 정보를 추출하고“ “ 혹은 ' ' 사이의 한글 텍스트 등을 추출하면 될 줄 알았지만클릭위의 예시와 같이 태그의 프로퍼티 등에 사용된 텍스트라거나 사원정보테이블입니다. * 아래는 예제 테이블으로 2건의 더미데이터는 실제사원 정보가 아닙니다.개행이 적용되지는 않지만 코드의 가독성을 위한 개행 문자로 구분되어 있거나 명시적으로 닫지 않아도 되는 self-cl.. 2024. 12. 11.
VSCODE 파일 삭제시 Error: EACCES: permission denied, unlink npx create-react-app 으로 프로젝트 생성시에 sudo 로 생성하다보니 특정폴더 소유권이 root로 생성되면서 발생한것 같다. 해결방법 1. 터미널 이 사용자명은 터미널에 whoami 를 치면 볼 수 있음. sudo chown -R 사용자:그룹 해당디렉터리 2. GUI 환경에서 수정 https://support.apple.com/ko-kr/guide/mac-help/mchlp1203/mac Mac에서 파일, 폴더 또는 디스크의 권한 변경하기 Mac에서 사용자 및 그룹이 파일, 폴더 또는 디스크를 보거나 변경하도록 허용하는 권할을 할당할 수 있습니다. support.apple.com 이후 정상 삭제됨 2023. 9. 4.
역에의한 계산으로 근속년수, 경력 년월일 구하기 JAVA,JAVASCRIPT 역에의한 계산으로 근속년수, 경력 년월일 구하기 JAVA,JAVASCRIPT 근속년수, 근속년한, 경력인정기간, 경력계산, 년월일 구하기. 날짜 이슈 해결하기 시작 정확한 년/월/일 표기 산정기준을 잘 모르겠고, 타 사이트(네이버, 기간계산기, 경력계산기 등..) 다 다름. 2. 민법 제160조 역에 의한 계산 따르기로 함. 3. Java의 LocalDate를 사용하기 위함임. 즉 LocalDate로 계산한 결과에 대한 근거가 민법 제160조 역에 의한 계산방식(약간의 계산 수정은 필요함) 무엇보다도, 계산 결과에 대한 근거를 제시할 수 있다는 점에서 이 방식을 택했다. 시스템 계산과 역에 의한 계산의 차이 1. 시스템계산 CASE 12022.12.30 ~ 2023.02.28 : 1개월 30일 2023... 2023. 8. 3.
FileNotFoundError: [Errno 2] No such file or directory 에러 바로 해결 따로 설정되어있는 작업경로를 기준으로 파일을 찾기 때문에 파일을 못찾는 경우입니다. scriptpath = os.path.dirname(__file__) filename = os.path.join(scriptpath, '파일명') with open(filename) as json_file: json_data = json.load(json_file) 해주면 끝 2022. 3. 31.
React 18 자동 배칭, Automatic batching Automatic batching for fewer renders in React 18 #21 React는 여러 개의 state update를 모아서 한 번에 re-rendering을 진행합니다. function App() { const [count, setCount] = useState(0); const [flag, setFlag] = useState(false); function handleClick() { setCount(c => c + 1); // 아직 리렌더링 안함 setFlag(f => !f); // 아직 리렌더링 안함 // 리액트는 이 함수가 다 끝나면 리렌더링 함 // 이를 batching이라 부름. } return ( Next {count} ); } 이런 처리 방식은 웹페이지의 렌더링 횟.. 2022. 3. 3.
맥북 화면분할, 창 분할 spectacle app 설정하기 단축키로 창 분할 해당 기능은 Window OS에서는 Window 키와 방향키로 기본적으로 지원해주는 기능입니다. 하지만 Mac OS에서는 기본 기능이 아니어서 별도의 SW를 설치해야 합니다. spectacle이라는 앱입니다. https://www.spectacleapp.com/ 💡 라이센스 MIT License이므로 상업/비상업적 사용이 가능하므로 회사에서도 사용이 가능합니다. https://github.com/eczarny/spectacle/blob/master/LICENSE.md 파일을 설치하고 실행시키면 이런 창이 뜹니다. Open System Preferences 버튼을 클릭해줍니다. 창이 뜨지 않는다면 시스템 환경설정 → 보안 및 개인정보 보호 → 개인 정보 보호 에서 설정 가능합니다. 여기서.. 2022. 2. 27.
맥북 한영 설정하는법 (카라비너 설정) Mac은 한/영 키가 Tab밑에, 즉 윈도우의 CapsLock위치에 있기 때문에 윈도우 키배열에 익숙하다면 불편할 수밖에 없습니다 기본 설정으로는 원래의 한/영자리인 스페이스바 오른쪽의 ⌘위치를 한/영 키로 바꿀 수 없기 때문에 karabiner(카라비너) 라는 소프트웨어를 사용합니다. https://karabiner-elements.pqrs.org/ Karabiner-Elements A powerful and stable keyboard customizer for macOS. karabiner-elements.pqrs.org 위의 링크를 통해 접속합니다. Download를 눌러 쉽게 설치할 수 있습니다. macOS 12 Monterey, macOS 11 Big Sur 두 가지 OS 버전과 Intel 프.. 2022. 2. 26.
React18 Suspense SSR 아키텍쳐 용어 성능 TTFB: Time to First Byte (첫 번째 바이트까지의 시간) - 링크를 클릭한 후 처음으로 들어오는 콘텐츠 비트 사이의 시간을 나타냅니다. FP: First Paint - 픽셀이 처음으로 사용자에게 표시되는 시점. FCP: First Contentful Paint - 요청 콘텐츠(기사 본문 등)가 표시되는 시점 TTI: Time To Interactive - 페이지가 상호작용 가능하게 될 때까지의 시간 (이벤트 발생 등). New Suspense SSR Architecture in React 18 #37 리액트 16.6.0 에 React.lazy와 함께 Suspense가 처음 등장했습니다. Suspense는 비동기 로딩의 필요성을 감지하고 대체 로드 UI를 렌더링 하는 것입니다... 2022. 2. 17.
Semantic Versioning, Tilde, Caret Semantic Versioning 소프트웨어 관리를 위해서는 의존성에 유의해야하는데 버전 번호를 어떻게 정하고 올려야 하는지 규칙과 요구사항을 제안 합니다. 버전은 .을 기준으로 3개로 구분합니다. Major . Minor . Patch 기존 버전과 호환되지 않게 API가 바뀌면 Major의 숫자를 올립니다. 기존 버전과 호환되면서 새로운 기능을 추가할 때는 Minor의 숫자를 올립니다. 기존 버전과 호환되면서 버그를 수정한 것이면 Patch의 숫자를 올립니다. 즉 최초 출시로 1.0.0 에서 이전 버전과 호환되는 버그 수정은 Patch를 수정하여 1.0.1로 업데이트 하고, 여기서 이전 버전과 호환되는 새로운 기능을 추가하면 Minor를 증가시키고 Patch를 0으로 (1.1.0) 업데이트 합니다. .. 2022. 2. 15.