TIL

반응형
· TIL
전반적인 css는 나무위키 디자인을 참고하였지만나무위키 문법을 그누보드에서 사용하는 건 좀 번거로울 것 같아서 php와 json을 사용하고 적당히 파싱하기로 햇음  1. 컨텐츠 (섹션)wr_content를 파싱하여 섹션을 나누고, 섹션대로 접기가 가능하도록 만들었다.2. 프로필 (성별, 나이 등)wr_profile이라는 컬럼을 새로 만들었고, json 형식으로 db에 저장함.불러올 때 파싱해주면 되기 때문에 비교적 간단했다./** * wr_profile */$profile_json = stripslashes($view['wr_profile']); // 이스케이프 해제$profile_data = json_decode($profile_json, true); // JSON 디코딩 $value) ..
· TIL
/** * 테이블 확인 및 생성 */// 캐릭터 테이블 확인 및 생성if (!sql_query("DESCRIBE {$g5['character_profiles']}", false)) { echo "테이블 '{$g5['character_profiles']}'이 없습니다. 생성 중...\n"; $sql_character_table = " CREATE TABLE `{$g5['character_profiles']}` ( `ch_id` INT AUTO_INCREMENT PRIMARY KEY, -- 캐릭터 고유 ID `mb_id` VARCHAR(50) NOT NULL, -- 사용자 ID `ch_name` VARCHAR(255) N..
· TIL
문제 : 모바일 버전에서 등록해둔 스탬프 및 보상 데이터가 다 불러와지지 않음원인 : 그누보드 bbs 로직 자체에 모바일의 경우 SELECT에 10~15개 제한을 걸어둠... (페이징 처리용)해결 : 아예 bbs의 게시판 select문을 사용하지 않고 자체적으로 select해와서 새 배열에 저장하도록 변경함이렇게 할 수 있었던 건 캘린더에 페이징을 사용하지 않기 때문
· TIL
아보카도 에디션 기반의 보상 캘린더 개발테이블이 존재하지 않을 경우보상 여부 기록용 (로그) 테이블을 하나 작성한다.if (!sql_query(" DESCRIBE {$g5['rewards_calendar']} ", false)) { // 테이블이 존재하지 않으면 생성 $reward_sql = "CREATE TABLE IF NOT EXISTS `{$g5['rewards_calendar']}` ( `rc_id` INT(11) NOT NULL AUTO_INCREMENT, `ch_id` INT(11) NOT NULL, `bo_board` VARCHAR(100) NOT NULL COMMENT '게시판 ID', `wr_id` INT NOT NULL COMMENT '..
· TIL
1. 개요검색창을 만드는 도중 다음과 같은 에러가 발생했다.RenderBox was not laid out: RenderTapRegion#658eb relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE'package:flutter/src/rendering/box.dart':Failed assertion: line 2164 pos 12: 'hasSize'코드는 다음과 같다.child: Row( children: [ TextField( decoration: InputDecoration( hintText: '영화 제목을 검색해주세요.', ), ), IconButton( ..
· TIL
세션 이용하여 비밀상점 만들기전체 코드session_start();header('Content-Type: text/html; charset=utf-8');// 비밀상점 여부$cf_shop_onoff = $config['cf_shop_onoff'];// 상점 세션 초기화 (상점 세션만 초기화하기 위해 별도의 세션 변수 사용)if ($cf_shop_onoff != 1) { if ($_SERVER['REQUEST_METHOD'] === 'POST' && mb_check_encoding($_POST['shop_password'], 'UTF-8') && $_POST['shop_password'] == $config['cf_shop_password']) { $_SESSION['shop_access..
· TIL
issetisset 함수는 PHP에서 변수가 설정되었는지 (즉, 존재하고 NULL이 아닌지) 확인하는 데 사용된다.true 또는 false를 반환한다.$cf_community_grade = isset($_GET['cf_community_grade']) ? (int)$_GET['cf_community_grade'] : $config['cf_community_grade'];여기서 사용된 isset 함수는 $_GET['cf_community_grade']가 설정되었는지를 확인하기 위해 사용되었다. 이 경우 $_GET['cf_community_grade']가 설정되어 있으면 해당 값을 사용하고, 그렇지 않으면 $config['cf_community_grade']의 기본값을 사용하게 된다.isset($_GET['..
· TIL
DockerFile 수정 최적화와 가독성 향상, 이미지 사이즈 축소 등 다양한 이점을 고려하여 멀티스테이지 빌드 접근법을 dockerfile에 도입하였다. #################### # Build Stage #################### # Node.js 기반 이미지 선택 FROM --platform=linux/amd64 node:20.11.0 as build # 애플리케이션 디렉토리 생성 WORKDIR /usr/src/app # 애플리케이션 의존성 파일 복사 COPY package*.json ./ # package-lock*.json 대신 package*.json 사용으로 수정 # 패키지 설치 RUN npm install --verbose # 애플리케이션 소스 복사 (src 폴더와 나..
· TIL
CloudFront cloudfront를 통해 버킷에 올라간 파일을 배포하려고 하는데 컨텐츠 열람이 아니라 다운로드가 되는 문제가 발생했다. 검색해보니 content-type을 지정하지 않아 발생하는 문제라고 함. # 기존 코드 await this.s3 .putObject({ Key: key, Body: file.buffer, Bucket: process.env.S3_BUCKET, }) .promise(); # 수정한 코드 await this.s3 .putObject({ Key: key, Body: file.buffer, Bucket: process.env.S3_BUCKET, ContentType: file.mimetype, }) .promise(); 이렇게 파일의 mimetype을 컨텐츠 타입으로 지정..
· TIL
웹소켓(WebSocket)에 대해서 1. 웹소켓이란? 웹 애플리케이션에서 양방향 통신을 가능하게 하는 프로토콜. HTTP와 마찬가지로 웹을 통해 데이터를 전송하지만, HTTP와 달리 웹 소켓은 지속적인 연결을 유지하고 실시간 데이터를 교환할 수 있다. 2. 웹 소켓의 주요 특징 양방향 통신: 웹 소켓은 클라이언트와 서버 간에 양방향 통신을 지원한다. 이는 클라이언트와 서버가 독립적으로 데이터를 보내고 받을 수 있음을 의미함 실시간 통신: HTTP와 달리 웹 소켓은 연결을 유지하고 있어서, 서버에서 발생하는 변경 사항을 실시간으로 클라이언트에게 전달할 수 있다. 이러한 특성은 채팅 애플리케이션, 실시간 게임, 주식 시장 데이터 스트리밍 등에 유용하다. 낮은 오버헤드: 웹 소켓은 HTTP의 요청/응답 모델보..
반응형
IMRUNNING
'TIL' 카테고리의 글 목록