캠프 OT
출석관리
0시간 ~ 5시간 59분 - 결석처리
6시간 ~ 11시간 59분 - 지각/조퇴/외출
12시간 이상 - 출석
지각/조퇴/외출 3회 시 결석 처리
본인 부주의로 인한 미입실/미퇴실은 인증 불가
hrd.net 어플의 QR코드 인증으로 입실 및 퇴실 처리
QR에서 문제가 생긴다면 출결 기록하기 페이지를 들어가 관리 가능
Unreal 기초 학습 자료 모음집과 Unreal 게임개발종합반 강의를 같이 정리함
서버
웹 서버
주로 텍스트나 이미지와 같은 정적진 콘텐츠를 전송한다. (동적 컨텐츠도 처리가능)
빠르고 간단한 데이터 처리로 다수의 사용자에게 정보를 쉽게 제공하는 것이 목적
게임 서버
웹 서버와는 다르게 실시간 상호작용과 복잡한 데이터를 다룬다.
사용자가 게임에서 움직일 때 다른 사용자에게도 즉시 그 움직임이 반영되어야한다.
이러한 상호작용을 원활하게 하기 위해 게임 서버는 많은 사용자의 상태와 게임 데이터를 동시에 처리해야 한다.
여러 명이 동시에 접속하고 위치, 아이템, 캐릭터 상태 등 복잡한 데이터를 빠른 속도로 처리하기 위해 서버 성능이 중요하며 일반적으로 웹 서버보다 복잡한 시스템을 갖추고 있다.
주저리주저리..
tistory.. velog.. 개인도메인페이지... 깃허브페이지.. 등 예전에 여기저기 왔다갔다하면서 글을 썼었는데 이제는 깃허브홈페이지로 정착을 해야겠다.
개발을 놓은 세월동안 깃허브페이지를 관리하는 파일이나 컴포넌트들 구조방식이 많이 바뀐탓일지 이전에 했던 것들이 더 이상 동작되지않아 많은 파일들을 가감히 버렸다. (삭제한건아니다!)
이틀 뒤 캠프가 본격적으로 시작하기 전, 베이스캠프라는 곳을 왔는데.. 시간이 얼마 없지만 조금이나마 기초의 기초라도 익혀서 본 캠프 시작을 해야겠다.
코드 전체입니다.
exportData로 엑셀 다운로드를 할 수 있습니다.
타입이 지저분하고 any가 많은데..
// functions.ts
const wrapCsvValue = (
val: string,
formatFn?: (arg0: string, arg1: RowData | undefined) => string | undefined,
row?: RowData,
) => {
let formatted = formatFn ? formatFn(val, row) : val;
formatted =
formatted === undefined || formatted === null ? "" : String(formatted);
formatted = formatted.split('"').join('""');
return `"${formatted}"`;
};
export const exportData = (columns: any, rows: any) => {
const content = [
columns.map((col: { label: string }) => wrapCsvValue(col.label)),
]
.concat(
rows.map((row: { [x: string]: any }) =>
columns
.map((col: any) => {
const value =
typeof col.field === "function"
? col.field(row)
: row[col.field === void 0 ? col.name : col.field];
if (value instanceof Date || dayjs.isDayjs(value)) {
return wrapCsvValue(
dayjs(value).format("YYYY.MM.DD HH:mm"),
col.format,
row,
);
}
return wrapCsvValue(value, col.format, row);
})
.join(","),
),
)
.join("\r\n");
const bom = "\uFEFF";
const status = exportFile("table-export.csv", bom + content, "text/csv");
if (status !== true) {
commonNotify(
{
message: "Browser denied file download...",
},
"negative",
);
}
};
SPA를 S3 - Cloudfront 로 배포하였을때 path가 / 가 아닌 페이지에서 새로고침을 하면 404에러가 반환되는데 이를 해결하기 위한 방법이다.
Cloudfront -> 배포 선택 -> 오류 페이지 에서 사용자 정의 오류 응답 생성 을 눌러서 400, 403, 404 에러코드에 대한 응답 페이지 경로는 / 로 설정, HTTP 응답 코드는 200으로 설정해두면 된다.
해당 이슈는 에러라고 하긴 뭐하지만, 스토어에 앱을 출시할 때 개인정보처리방침, 이용약관 등을 확인시켜주어야 하는데 봇들은 404에러코드가 반환되면 페이지가 없다고 판단하여 리젝 처리를 해버리기때문이다.
모든 과정에서 다운로드 버튼이 있다면 다운로드를 해주세요.
- 먼저 CSR 인증서를 발급받기위해 맥북에서 키체인 접근 -> 상단의 키체인 접근 -> 인증서 지원 -> 인증 기관에서 인증서 요청 을 눌러줍니다.
사용자 이메일 주소를 입력해주고, 요청 항목에 디스크에 저장됨, 본인이 키 쌍 정보 지정 을 선택해주고 완료해줍니다.
-
애플 개발자 페이지로 들어가서
Certificates, Identifiers & Profiles를 들어가주세요. -
Certificates 에서 IOS Distribution (App Store Connect And Ad Hoc)을 체크하고 Continue를 해주세요.
-
스토어에서 Xcode 설치
-
cocoapods 설치
$ brew install cocoapods
# or
$ sudo gem install cocoapods
현 날짜 기준으로 프로젝트 생성시, vite, vue, pinia 기타 등등 세팅을 할때 모두 가장 최신버전으로 세팅을 해두었을때를 가정
- vue-i18n 사용시 개발서버에서는 변수 사용이 정상적으로 되는데 배포했을때 정상적으로 동작하지 않는 이슈
// en.json
{
"word.person": "{person} person"
}
우선 카카오 개발자 센터를 들어가서 앱 등록을 해주세요.
플랫폼에 들어가 사용할 플랫폼을 등록해줍니다.
앱키에서 Javascript 키를 복사하여 다음 코드에 넣어서 index.html에 넣어주세요.
<!-- index.html -->
<head>
<script
type="text/javascript"
src="//dapi.kakao.com/v2/maps/sdk.js?appkey={Javascript Key}&libraries=services"
></script>
</head>
