· WEB
회사의 협력사가 회사가 힘들어져 개발팀도 모두 퇴사한 상황에 운영 중인 프로젝트에 개발이슈가 있어 도움요청이 왔고 디버깅했던 프로젝트 경험담입니다. 그동안 학습하며 배운 지식을 토대로 부딪히면서 겪은 경험위주의 작성으로 작성된 프로젝트를 현재 운영하고 있지는 않지만 잘못된 점은 말씀해 주시면 학습 및 수정하겠습니다. 0. 어떤상황인가? 문제인식 협력사에 사정이 있어 기존 개발자들이 퇴사한 상황에서 프로젝트를 인수받음 협력사가 필요로 하는 특정 이슈를 디버깅해야 함(java spring boot 기반의 코드수정, 데이터 추출 등) 현재 SSL 사설인증서를 사용 중인데 만료시점이 다되어 이를 갱신해야 함 현황 협력사 내부에서 사용 중이던 내부 피씨 맥미니(intel chip)에 모든 자료들이 들어있음 인수인..
· 블록체인
신규 프로젝트인 DID관련 업무를 위한 사전지식을 습득하고자 여러 가지 자료를 통해 학습한 결과를 정리해보려 한다. DID구조 Scheme: did scheme을 따르겠다는 의미로 did scheme에서 정의한 접근 방식을 준수해 리소스를 찾아오겠다는 것을 명시 DID Method: DID Document가 저장된 위치(블록체인 네트워크명), 각 method는 사용할 블록체인을 정의하고 DID document를 찾는(resolve) 방법을 정의 Method-specific identifier: 저장소 내 DID document의 정확한 위치를 검색하기 위한 고윳값으로, EOA(개인지갑주소) 또는 CA(컨트랙트주소)등이 올 수 있다. 예시 did:example:123456/path path는 서비스 엔드포..
· AWS
근래의 대부분의 웹앱의 경우 동적인 방식이 많지만 전통적으로 단일페이지와 같은 랜딩페이지류의 원페이지 형태는 화면의 내용이 바뀔 일이 없는 정적인 방식이 다수다. Next.js를 통해 ssg방식의 정적 웹사이트를 AWS에 배포해서 캐싱을 위해 클라우드프론트를 적용하고 가비아와 같은 서비스에서 원하는 도메인을 구매해서 Route53에 적용하기 까지 기억이 휘발되지 않도록 기록을 남겨보려한다. 1. Next.js 정적사이트로 앱 빌드(SSG) https://nextjs.org/docs/pages/building-your-application/rendering/static-site-generation Rendering: Static Site Generation (SSG) | Next.js Using Pages..
· AWS
Next(SSR) 어디에 어떻게 배포하는 게 좋을까? 회사에서 대외 홍보용 웹사이트가 필요해서 랜딩페이지가 필요한 상황이었다. Next13 App Router버전 SSR방식이 적용된 프로젝트 배포과정에서 겪은 이슈를 공유하고자 한다. 우선 기존 배포방식 에서 다른 배포방식을 고려한 2가지 이유가 있었다. Next.js 프레임워크의 전환으로 인한 호스팅 환경 전환 필요 기존 클라이언트 Web Application은 S3에 정적웹호스팅 되어있고, AWS Cloudfront로 캐싱을 적용해 서비스를 제공하고 있다. 새로운 next프로젝트를 기존과 같이 S3에 배포하면 빌드된 파일이기 때문에 동적으로 구성되는 SSR이 적용되지 않는다. Image optimization 넥스트에서 제공하는 이미지컴포넌트는 다양한..
· 블록체인
console.log(1-0.07)??? 앞서 스왑(Token Transfers) 로그를 남기기 위해 이전데이터 값과 현재 컨트랙트 자산과의 차액 로그형태로 로직을 결정하기로 했다. 그런데, DB update과정에서 연산처리 중 1 Ehter에서 0.07 Ether를 차감했더니 0.9299999999999999가 되었다?! 같은 맥락으로 0.1+0.2를 더하면 0.30000000000000004가 되는 것과 같은 문제다. 이는 블록체인 데이터의 산술처리 문제라기보다는 엄밀히 말하자면 프로그래밍 언어의 산술처리문제라 봐야 할 것 같다. 왜 이런 상황이 발생할까? 부동소수점 연산 모든 프로그래밍 언어는 부동 소수점 연산을 이진수로 처리한다. 이는 컴퓨터에서 실수를 이진 부동소수점 형태로 표현하는 방식 때문인..
· 블록체인
DAO Service 반년정도 진행된 DAO 프로젝트가 초기 MVP모델이 최근에 완성되었다. 나뿐만 아니라 개발팀전원 web3 기반지식이 부족한 상태에서 애자일방식으로 개발을 진행되었다. 각자의 진행속도와 이해도가 너무나도 천차만별이라 개발하면서 스트레스도 많이 받고, 너무너무 힘들었다. 그중 애를 많이 먹였던 스왑과정에 대해 공유해보려한다. 문제의 이해를 돕기 위해 Flow를 설명하자면 아래 그림과 같다. 아래 예시는 토큰예치나 스왑등의 모든 트랜잭션의 Flow는 동일하다. 최종 DB는 transaction receipt 발급 여부를 기준으로 update하는데, 특히 스왑과 관련된 트랜잭션이 처리가 까다로웠다. 스왑(Token Transfer)에 대한 결과는 어디에 있을까? 클라이언트에서 서명 후 블록..
· AWS
URGENT Action Required - Your certificate renewal 회사에서 운영 중인 AWS계정에 긴급히 처리해줄것을 권고하는 메일을 한통 받았다. 자꾸 처리안하니까 urgent로 왔다(사실 받은지 좀 되었는데 방관하고 있다가 황급히 문제를 살펴봤다..) 왜 자동갱신이 되지 않았는가? 메일에서는 AWS Certificate Manager(ACM)에서 보유한 SSL/TLS 인증서가 만료일이 되기전에 갱신 작업을 수행해야 하는데 갱신이 되지 않는다고 했다. 만약 인증서가 갱신되지 않고 현재 인증서가 만료될 경우 관련 인증서를 사용 중인 애플리케이션이 동작하지 않을 수 있다는 내용이었다. 현재 사내 DNS는 AWS Route53에서 관리중이다, 이메일에 언급된 도메인에 대한 CNAME ..
cram.dev
cram.dev