웹에서 한글 특수기호가 깨지는 현상 해결하기: '㈝' 문자를 중심으로웹 개발을 하다 보면 ㈝, ㈜, ㉾ 같은 한글 특수기호가 깨져서 표시되는 현상이 발생한다. 오늘은 ㈝ (오전) 문자를 중심으로 이 문제를 해결하는 방법을 알아보자.목차특수문자 이해하기문제 상황해결 방안구현 예시결론특수문자 이해하기문제의 특수문자 정보유니코드 코드 포인트: U+321D이름: Parenthesized Korean Character Ojeon유니코드 버전: 4.0 (2003년 4월)블록: Enclosed CJK Letters and Months (U+3200 - U+32FF)스크립트: Hangul (한글)카테고리: Other Symbol (So)문제 상황아래 글을 읽다가 특수문자가 깨진 것을 발견했다. PC마다 정상 출력되거나..
IT/이것저것
올해 1월 OpenAI 에서 GPT 스토어(GPTs)를 출시하였는데 ChatGPT 와 외부 리소스를 연동하여 ChatGPT 의 활용폭을 좀더 넓힐수 있다. 난 크롤링한 해외 뉴스 데이터를 번역하여 내용을 요약, 큐레이션을 해보고 싶었고 금전적인 이유로 OpenAI API 를 쓸지 Gpts 를 활용할지 고민이 있었다. (사실 비용이 좀 들어도 상관없다면 OpenAI API 를 활용하는게 가장 깔끔하다.) 결국 Gpts 도 경험해볼겸 api 서버와 Gpts 를 연동해보았다. (GPT Plus 이용자만 GPTs 사용이 가능하다.) 1. GPTs 생성 화면으로 이동 2. GPTs 설정 instruction 에 작업내용에 대한 지시를 할 수 있다. GPTs 는 웹 브라우징이 가능하고 DALL·E 를 활용한 이미..
사용자 메뉴얼을 위키 형태로 만들어야 할 일이 있었는데 어떻게 구축할지 고민이 있었고 요구사항은 다음과 같았다. - 버전관리가 되면 좋겠다. - 간편하게 구현, 관리 포인트를 줄이고 싶다. (static 웹 페이지) - 관리자가 에디터로 편집 (optional) - 기존 서비스 사용자 기반 접근 권한 관리 (optional) 버전 관리는 git 으로 하면될거 같다. 그리고 optional 은 되면 좋고 안되도 괜찮은 사항이라 간편하게 구현 할수있는 것을 중점으로 알아보았다. wiki.js mkdocs sphinx 알아본 바 오픈소스로 위키를 구현할수 있는 프로젝트는 위 3가지 정도가 메이저하게 쓰이는 것 같고 특징은 다음과 같다. wiki.js - 상대적으로 복잡한 구현 DB 와 호스팅이 필요하기때문에 ..
DB 스키마에 unique 키가 걸려있는 컬럼에 중복된 값이 저장되거나 검색 결과에 나와야 할 값이 누락된 경험이 있다면 유니코드를 의심해보자. 한글과 유니코드 이 문제에대해 알아보기에 앞서 한글과 유니코드의 관계를 알아야 하는데 정리가 잘 되어있는 아래 링크를 참고하자. https://gist.github.com/Pusnow/aa865fa21f9557fa58d691a8b79f8a6d 한글과 유니코드 한글과 유니코드. GitHub Gist: instantly share code, notes, and snippets. gist.github.com 전세계 문자들을 컴퓨터에 표현하기 위해 아스키코드, 유니코드라는 코드표를 만들어 이렇게 쓰기로 약속을 하였다. 그리고 이 코드표를 참고하여 여러가지 방식으로 값을..
구글링을 잘하기 위해선 키워드와 문장을 잘 조합하여 질문을 잘 해야한다. 마찬가지로 ChatGPT 를 잘 쓰기 위해선 ChatGPT 가 답변할 내용에 대해 범위를 좁혀주고 포커싱할수 있게 질문을 잘 해야 하는데 이러한것을 prompt 라고 부른다. 이 prompt 를 정형화하고 패턴화하여 ChatGPT 를 더 효율적으로 사용할수 있는 기법들이 몇가지 있는데 이에 대해 알아보자. Persona 패턴 ChatGPT 에게 Persona (역할, 모습)을 부여하여 이에 맞게 행동하도록 유도한다. ex) 당신은 xx 회사의 시니어 개발자 입니다. 다음의 코드에서 문제점이나 개선할 점이 있으면 알려주세요. 당신은 마케팅 전문가 입니다. 다음의 슬로건을 검토하고 다른 인기 있는 마케팅 캠페인이 기반하여 마케팅 전략을..
캐시란 시간이 많이 걸리는 연산을 미리 계산해놓고 빨리 가져다 쓰거나, DB 부하를 줄이기 위해 Read 가 많이 발생하는 데이터를 캐싱해놓고 빨리 가져다 쓰는 기법이다.(write 를 위한 캐시 또한 존재) 그리고 캐시를 하는 위치에 따라 로컬캐시, 분산캐시로 나눌수 있는데 로컬캐시의 경우 자바의 ehcache 가 대표적이며 속도는 로컬캐시가 가장 빠르다. 왜냐하면 분산 캐시의 경우 별도의 서버로 외부에서 작동하기 때문에 네트워크 통신같은 오버헤드가 필연적으로 발생한다. 그럼 가장 빠른 로컬 캐시가 좋으니 무조건 로컬 캐시를 사용하면 되지 않을까? 서비스의 규모가 작고 모놀리틱하게 서버 한대로만 운영한다면 초창기엔 로컬캐시만 사용해도 문제가 없을수도 있다. 하지만 서비스가 성장함과 동시에 서버 한대로는..
카카오 로그인 연동을 하다 위와 같은 에러가 계속 발생하여 clienet_secret 값을 이것저것 바꿔보았는데 해결되지 않아 검색을 해보니 내가 값을 잘못넣고 있었다. 카카오 개발자 센터 client_id : "내 어플리케이션 > 앱 설정 > 앱 키" 에 있는 REST_API_KEY 입력 client_secret : 내 어플리케이션 > 카카오 로그인 > 보안" 에 있는 Client Secret 코드 입력
개요 2022년 10월 15일, sk cnc 데이터센터 화재로 인해 일명 카카오 먹통 사태로 번졌을때 PG 기능중 하나였던 카카오페이에서 중복 결제가 발생했었다. 그래서 앞으로 또 PG사 서비스 장애가 발생했을때 똑같은 일이 발생하지 않도록 중복결제 방어가 필요했기에 이러한 서비스 장애 발생시 대처법에 대하여 알아보았다. 사용하고 있는 PG 는 총 3개로 나이스페이, 토스, 카카오페이 (정기결제) 이다. 그럼 각 PG 사마다 결제요청에 대해 알수없는 응답에 대해서 어떻게 처리하는지 알아보도록 하자. PG사에 결제 요청을 했을때 받을수 있는 응답 값은 3가지로 나뉜다. 성공 실패 알 수 없음 성공 혹은 실패로 명확한 응답 값을 받은 경우는 문제가 없다. 문제는 알 수 없음 인 경우다. 결제 요청을 했는데 ..