import type { Metadata, ResolvingMetadata } from 'next' type Props = { params: { id: string } searchParams: { [key: string]: string | string[] | undefined }} export async function generateMetadata( { params, searchParams }: Props, parent: ResolvingMetadata): Promise { // read route params const id = params.id // fetch data const product = await fetch(`https://.../${id}`).then((res) => r..
데이터베이스를 이용한 공통코드 관리 방식은, 프로젝트의 일관성과 유지보수성을 확보하는 데 가장 적합한 방식입니다. 공통코드란, 여러 모듈에서 공통적으로 사용되는 코드 값을 말합니다. 이 코드 값을 여러 모듈에서 일관성 있게 사용하고 유지보수하기 위해서는, 데이터베이스를 이용하여 관리하는 것이 가장 바람직합니다. 데이터베이스 방식은, 공통코드를 중앙 집중적으로 관리할 수 있기 때문에, 여러 모듈에서 사용되는 코드 값을 일관성 있게 유지할 수 있습니다. 또한, 데이터베이스는 내구성이 좋기 때문에, 시스템의 안정성을 확보할 수 있습니다. 예를 들어, Enum 방식을 이용하여 공통코드를 관리하다가, 특정 모듈에서 실수로 잘못된 코드 값을 사용하게 되면, 시스템 전체에 영향을 미칠 수 있습니다. 하지만, 데이터베..
날짜 connect by 할 때 SELECT TO_CHAR(I::DATE, 'YYYYMMDD') AS DAY FROM GENERATE_SERIES( TO_DATE(REGEXP_REPLACE(#{startDt}, '\D','','g'), 'YYYYMMDD') , TO_DATE(REGEXP_REPLACE(#{endDt}, '\D','','g'), 'YYYYMMDD'), '1 DAY'::INTERVAL) I 흔히 이렇게 쓰는데 문제는 실행계획에서 기간이 짧은데도 불구하고 1000 rows로 고정됨. SELECT TO_CHAR(#{startDt}::timestamp + make_interval(days => I), 'YYYY-MM-DD') AS DAY FROM GENERATE_SERIES(0, DATE_PART..
[기록할 것] 1. 애널리틱스를 살펴보니 대략 6개월간 트래픽이 없음. 2. 앱엔진을 살펴보니 그 이전 부터 데모사이트의 장애가 있었음. ( 개발환경에서 빌드한 리소스들로 배포 되는 거라 생각했는데 결과를 보니 배포될 때 빌드를 하는 것이었나 봄, deprecated 된 모듈들로부터 장애 발생으로 추정 ) 3. 그래도 appspot 도메인으로 접근 시 index page 정도는 살펴 볼 수 있었음. ( 오잉? ) 4. nslookup 명령어로 dns 조회를 해보니 무응답 ( ? ) 5. 호스팅케이알에 전화하여 자초지정을 설명 6. 혹시 인증메일 같은 것이 왔는데 응답하지 않았냐고 물어봄. 확인해보니 그런 메일 없 음. 7. 호스팅케이알 측에서 상위기관에 문의해본다고 함. 8. 통화 종료 후 2시간 이내에..
Error: Server ErrorThe server encountered an error and could not complete your request.Please try again in 30 seconds. 기존 자바로 배포된 어플리케이션에서는 한번도 겪어보지 못한 에러인데... 노드로 필요한 아키텍트들을 구상하고 배포해봤더니 에러가 났습니다. 설마 웹소켓말고 또 못쓰는 기술들이 존재하는가 긴장했는데... 앱엔진 로그를 뒤져보니 2019-01-09 18:59:10.207 JSTExceeded soft memory limit of 128 MB with 132 MB after servicing 0 requests total. Consider setting a larger instance class in..
AZURE ADJAdjectivesADVAdverbsCONJConjunctionsDETDeterminersMODALVerbsNOUNNounsPREPPrepositionsPRONPronounsVERBVerbsOTHEROther GOOGLEUNKNOWNUnknownADJAdjectiveADPAdposition (preposition and postposition)ADVAdverbCONJConjunctionDETDeterminerNOUNNoun (common and proper)NUMCardinal numberPRONPronounPRTParticle or other function wordPUNCTPunctuationVERBVerb (all tenses and modes)XOther: foreign words..
Spring Jsp Javascript Jquery Extjs Angularjs 각종 RDBMS, Google datastore뭐 대충 이런 것들을 써본 평범한 구시대 웹개발자 입장에서 Node.js React를 접하면서 도움 된 정보들입니다. 개인 프로젝트의 리뉴얼을 구상중인데 검색엔진을 위한 서버사이드 렌더링이 절실했고 운영비 절감을 위해 SPA도 포기할 수 없는 상황(isomorphic)이라 Angular Universal과 React 중에 고민하다가 한글레퍼런스가 Node.js React 쪽이 그나마 풍성?(하...) 했기에 React를 선택하였습니다. 이런 맥락으로 Spring+Nashorn은 엄두도 못냈네요.게다가 기존 Spring+@ 환경에서 웹팩은 불친절한 에드온같은 느낌(순대에 순대만?)..
Isomorphic 에 끌려서벨로퍼트님 책[리액트를 다루는 기술]을 사고 퇴근 후에 깔짝대기 3일차. Java Spring Jsp + Jquery Extjs AngularJs 뭐 이런 구시대 스킬이 익숙해서 그런지 너무 어렵습니다. 난해해요. 물론 Client 쪽만 본다면 Extjs 쪽이랑 유사한 느낌도 드는데... 느낌이 오는가 싶다가도 Server Side 코드가 훅 들어오면서 뇌정지가 옵니다. 진짜 어색한건 Node.js 같아요. 저의 목적은 React Node.js 정복이 아닌 속성으로 빠르게 익혀 개인 프로젝트에 적용하는 것이기 때문에 책을 뒤에서 부터 보고 있습니다. (뭐라는거야...) 아무튼 헤딩결과 기록해둬야 할 사항 세 개를 발견했습니다. 책에 있는 예제 기준으로 프레임워크를 선언? 주입..
결론부터 말하자면 실패입니다. 헤딩하기 전에 가장 참고가 되었던 것은 XETOWN RayHur님 댓글 입니다. ICP 인증 후 사이트 등록은 서버가 중국이나 홍콩에 있어야 된다고 하여 거들떠 보지도 않았습니다.(실은 거들떠는 보았으나 과거 포스트들을 참고하여 사이트 추가를 시도하면 웹 사이트 주소가 불법입니다. 라고 나옵니다.) 언급해주신 내용 중에도 나오고 여기서도 언급되고 있는 바이두 통계와 바이두 쉐어. 두 가지 루트가 남았는데요. 하나씩 헤딩해보겠습니다. 먼저 바이두 통계입니다. 바이두 회원가입은 여기서 국내 휴대전화로도 가입이 가능하지만 바이두 통계, 여기는 별도의 계정을 요합니다. 문제는 중국 휴대전화가 필요합니다. 그래서 중국 가상전화번호를 만들어서 SMS 인증을 받아 보자! 해서 여기를 참..
- Total
- Today
- Yesterday
- google analytics with node.js
- https only
- 500
- react adsense
- 검은사막
- 구글앱엔진
- Slay the Spire
- GPT
- Moment
- 바이두
- Server Error
- 풀 뿌리 요정
- react
- react ga
- 수도 발렌시아
- SSR
- 바이두 쉐어
- 벨리아
- 바이두 통계
- google app engine
- react tooltip
- 마이핀을 발급한
- react grid
- 계정찾기
- 그믐달 관리자
- 크리오 마을의 악몽
- node.js
- 라밤
- 이야기 교류
- GAE
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |