doneni
doneni

전체 글

⋆。˚ ☁︎ ˚。⋆。˚☽˚。⋆-
Dev

Netlify로 정적 웹사이트 배포하기

개요Qwik + UnoCSS로 개발한 정적 블로그 프로젝트를 배포 플랫폼인 Netlify에 배포하는 전체 과정을 다룬다. Netlify정적 웹사이트나 프론트엔드 프로젝트를 간편하게 배포할 수 있는 플랫폼이다. Github, GitLab, Bitbucket과 같은 저장소와 연동하여 `main` 브랜치에 push하는 것만으로 자동으로 빌드하고 배포한다. 배포 대상Qwik-city로 개발된 간단한 정적 블로그 프로젝트이다.Qwik의 static adapter를 추가하여 빌드 설정을 하였고, (ref: https://qwik.dev/docs/guides/static-site-generation/)`netlify.toml`을 작성해 빌드 및 리다이렉트 설정을 하였다. GitHub - doneni/qwik-blog..

Dev

웹 렌더링 방식 (CSR / SSR / SSG / ISR)

개요사용자가 웹사이트에 접속했을 때, 어떻게 html을 만들어서 브라우저에 보여줄지에 대한 방식 4가지를 살펴본다.이런 렌더링 방식에 따라 속도, SEO(검색 엔진 최적화), 사용자 경험이 결정된다.사용자가 `/about` URL을 호출하는 상황을 가정하였을 때, 각 렌더링 방식은 다음과 같이 동작한다. 🍉 CSR(Client Side Rendering) 모든 라우팅과 렌더링을 브라우저(JS)에서 처리!서버는 비어있는 `index.html` 하나를 응답하고 브라우저가 이를 파싱한다.JS 번들을 로드하고 앱이 초기화된다.JS 내 라우터가 현재 URL(`/about`)을 보고 그에 맞는 컴포넌트를 렌더링 한다. 🍉 SSR(Server Side Rendering)html 생성은 서버에서, 동작 연결은 브..

Dev

VMware 호스트의 공유 폴더 마운트

개요VMware와 호스트 사이 공유 폴더를 설정하고 이를 가상 머신에 마운트하는 과정이다. 1️⃣ 공유 폴더 지정VM > Settings... 를 들어가면 Options 탭에 `Shared Folders` 섹션이 존재한다.위와 같이 `Always enabled`를 활성화한다.호스트 상 공유할 폴더를 추가한 후 원하는 이름를 설정한다. (나의 경우 `shared`로 설정하였다.) 2️⃣ 마운트 설정 (수동)호스트에 존재하는 공유 폴더를 수동으로 마운트하며, 시스템을 종료하면 마운트는 해제된다.일시적으로 마운트를 원할 때 수행하면 좋다. 우선 선행적으로 VMware Tools가 설치되어 있어야 한다.아래와 같은 명령어로 설치 여부를 확인할 수 있다.vmware-toolbox-cmd -v 만약, 설치가 되어있..

PS

BOJ 9017 크로스 컨트리 Java

문제들어온 순서대로 플레이어의 소속 팀이 입력으로 주어짐팀의 소속 플레이어가 6인 미만이면, 팀 전원 실격 -> 등수 계산 시 포함되지 않음이걸 놓쳐서 ... 시간 좀 썼습니다.팀 점수는 상위 4명의 점수 합이고, 동점이 나오면 팀의 5등 플레이어의 점수로 승부를 가림접근입력값을 먼저 저장하면서, 각 팀의 인원 수를 카운트입력값을 저장한 배열을 순차 접근팀 인원 수가 6인 미만인 팀에 속한 플레이어는 pass팀 점수에 합해진 플레이어 카운트 올리고, 팀 점수에 플레이어의 등수를 더함팀의 5등 플레이어는 따로 배열을 만들어 저장코드더보기import java.io.*;import java.util.*;public class Main { public static void main(String args[]) ..

PS

BOJ 3273 SumX C++

문제 해결 방법🌟 값의 중복이 없고, 정렬을 할 수 있음 -> 투 포인터로 접근가능 O(n) 코드더보기#include #include #include using namespace std;int main(){ int n; cin >> n; vector a(n); for(int i = 0; i > a[i]; } int x; cin >> x; sort(a.begin(), a.end()); int ans = 0; int h = 0, t = n-1; while(h

PS

BOJ 12000 Circular Barn (Bronze) C++

문제1. N개 원형으로 이어진 방에 각각 r_i 마리의 소들이 들어가야 한다.2. N개의 방 중 하나를 문으로 하고, 이 방을 통해 시계 방향으로 소들을 넣어주려고 한다.3. 어떤 방을 문으로 하였을 때 이동 수의 총합이 제일 적은지 구해야 한다. 해결 방법🌟 N의 크기를 보니 브루트 포스가 가능해 보인다. 코드더보기#include #include using namespace std;int main(){ int N; cin >> N; vector cows(N+1); for(int i = 1; i > cows[i]; } int min_step = (int)1e9; for(int i = 1; i

Dev

Git CRLF, LF 줄바꿈 문제 해결

문제 상황Git은 플랫폼 간 호환성을 위해 기본적으로 줄바꿈 방식을 자동으로 변환한다. Windows는 CRLF, macOS/Linux에선 LF로 처리한다. 그리고 git에서 이를 처리하기 위해 기본 설정을 제공한다만 ... 경고가 발생하고는 한다.warning: in the working copy of 'filename', CRLF will be replaced by LF the next time Git touches it운영체제를 오가며 작업하는 경우 이런 줄바꿈 형식의 불일치로 경고가 발생하거나, 파일 변경으로 추적될 수도 있다.해결1️⃣ `.gitattributes` 설정루트 디렉터리에 `.gitattributes` 파일을 생성해 설정하면 된다.이 설정은 모든 텍스트 파일의 줄바꿈을 자동으로 처리..

Dev

Android Studio 비정상 종료 후 코드 오류 발생

개요안드로이드 개발을 하다 Android Studio를 강제 종료한 이후, 그전까지 멀쩡하게 돌아가던 코드가 먹통이 되었던 경험이 있다. Invalidate Caches를 한 후 문제가 말끔하게 해결되었다... 원인Android Studio(그리고 IntelliJ도) 프로젝트 파일과 관련된 데이터를 캐시하여 더 빠른 빌드를 하도록 한다. 그런데 Android Studio 자체가 비정상 종료되면 이 캐시가 손상될 수 있다.캐시가 손상되면 1️⃣ 프로젝트 파일들이 제대로 처리되지 않고, 변경사항이 반영이 안 되거나, 2️⃣ 인덱싱 오류로 코드가 올바르게 인식되지 않기도 하며, 3️⃣ 빌드 시스템 불일치가 뜰 수 있다. 해결File > Invalidate Caches... 기능은 손상된 캐시 파일을 삭제하고 ..

PS

BOJ 1531 투명 C++

문제시뮬레이션 문제를 많이 풀어보려고 한다. 해결 방법🌟 N의 범위가 50이하이기 때문에 이중 for문을 써도 괜찮다.🌟 이중 for문을 한 번만 써도 정답을 구할 수 있다. 코드더보기#include #include #define FASTIO cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false);#define MAX 101using namespace std;int M = 0;vector> p(MAX, vector(MAX, 0));int hidden = 0;void paint(int x1, int y1, int x2, int y2) { for(int x = x1; x > N >> M; while(N--) { int x1..