목록전체 글 (89)
가희의자기개발블로그
원티드에서 주최하는 프론트엔드 프리온보딩 코스에 참여했습니다. 해당 포스팅은 프리온보딩 코스의 사전과제 내용으로, Next.js를 초기 생성했을때 package.json에 명시되어있는 script "next start"를 하게 되면 어떤 일이 발생하는지 그리고 이를 실행하는 파일을 파악해 보고자 하는 글입니다. Next.js란 SPA(Single Page Aplication)에서 SSR이 가능하도록 해주는 React의 라이브러리입니다. (Vue에서는 nuxt.js가 있죠.) SSR에 대해 간략히 한줄로 표현하자면, 서버에서 미리 HTML을 만들어 클라이언트에게 전달해주는 것을 SSR이라고 합니다. yarn create next-app --typescript 을 입력하여 생성되는 next.js의 초기 파일..
얼마전, 인턴을 했던 회사의 사수분과 이야기 하던중, Session과 JWT를 혼용해서 쓰는것에 대해 대화를 나눴다. 두개를 혼용해서 쓰면 안된다는 것을 알고는 있었지만, 왜 그러면 안되는지에 대해서 명확히 알고 있지 않아서 검색을 해보던 중, 좋은 글이 있어서 번역에 도전해봤다. 같은 글을 번역한 블로그글도 있었지만, 왜인지 중간에 끊겨있어서 정리할겸 포스팅을 결심했다. 최근, 유저 세션을 관리하기 위해 JWT를 이용하라는 글이 많습니다. 정말 추천하지 않는 방법이고 제가 왜 그렇게 생각하는지 설명하겠습니다. 본격적으로, 글을 시작하기 앞서 먼저 몇가지 키워드를 정의하겠습니다. Stateless JWT: 세션 데이터를 포함하는 JWT토큰입니다. 토큰에 직접 인코딩 합니다. Stateful JWT: 세션..
ㄴㅓ무 쉬워서 보니 초등용 문제였따....! import java.util.Scanner; public class GreedyAlgorithm03 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int T = scan.nextInt(); int A =0; int B = 0; int C = 0; if(T%10 != 0){ System.out.println(-1); }else{ A += T / 300; T -= A*300; B += T/60; T -= B*60; C += T/10; System.out.println(A+" "+B+" "+C); } } } www.acmicpc.net/problem/10162 10..
백준 문제를 풀다가 입력방식때문에 시간초과에러가 발생해서 원인도 모르고 며칠을 고민했었다. 그 원인은 Scanner의 상대적으로 느린 입력처리 때문이였는데, 그 이유를 알아보자. 이 두 클래스는 모두 입력을 받기위한 클래스라는 점에서는 동일하다. 하지만, 사용방법이나 속도 면에서 차이점이 존재한다. BufferedReader는 InputStreamReader에 버퍼링 기능이 추가된 기능이라고 한다. 이게 뭔소리인가? InputStreamReader의 경우, 문자열을 Character단위로 불러들인다. 한글자씩 문자열을 불러들이기 때문에 굉장히 비효율적이기 때문에 이를 보완하고자 BufferedReader 기능이 추가된것이다. BufferedReader는 사용자가 요청할 때마다 데이터를 읽어 오는 것이 아..
얼마전, 라라벨에서 json타입으로 return 해주기위해서 Content-Type과 Accept 에 json/application이라고 명시해준적이 있다. Content-Type은 해당 데이터의 타입을 명시해주는것이라고만 간단히 알고 있었는데 Accept는 무엇을 뜻하는지 알지 못해서 찾아봤다. Content-Type Content-Type헤더는 이 메시지에 담긴 객체의 미디어 타입을 알려준다. 만약 Content-Type헤더가 없다면 데이터를 전송하는쪽(브라우저나 웹서버)에서는 특정한 형식의 데이터일지라도 데이터를 받는 입장에서는 단순히 텍스트 데이터로 받아들인다. 중요한점은 HTTP 요청의 경우 GET방식인 경우에는 무조건 URL 끝에 쿼리스트링으로 value=text 형식으로 보내지기 때문에 Co..
라라벨 RestApi 템플릿 프로젝트를 구현 중에, validation 규칙이 맞지 않으면 error메시지를 출력해 보고 싶었다. 그런데 자꾸 이전 페이지로 redirect되는 문제가 발생했고 공식문서를 찾아보니 아래와 같이 나와있었다. 이제 새로운 블로그 포스트에 대해 유효성을 검사하는 로직을 store 메소드에 채워넣을 준비가 되었습니다. 이를 위해서 Illuminate\Http\Request 객체에 제공되는 validate 메소드를 사용할 것입니다. 유효성 검사 규칙들을 통과하게되면 코드는 계속해서 정상적으로 실행됩니다. 하지만 유효성 검사를 통과하지 못할 경우, 예외-exception가 던져지고 적절한 오류 응답이 사용자에게 자동으로 보내질 것입니다. 전통적인 HTTP 요청의 경우, 리다이렉트 응..
깃허브에 레파지토리를 만들고 내 컴퓨터에서 작업한 파일을 아래와 같이 원격저장소와 연결해주었다. git remote add origin [repo주소] 하지만, 작업한 내용을 push하는데 아래와 같은 에러를 발생했다. Github 원격 저장소와 로컬 저장소 간 공통분모가 없는 상태에서 병합하려는 시도로 인한 문제. 기본적으로 관련 없는 두 저장소를 병합하는 것은 안되도록 설정되어 있다. 구글에 검색해보니 두가지 방법이 나와있었다. 첫번째는, push시에 master앞에 +를 붙여주는것이었다. +는 --force라는 옵션이다. 강제로 push를 force해주는 옵션이다. git push -u origin +master 두번째는, 옵션을 이용하는 방법이였다. git pull origin master --a..
www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net import java.util.Scanner; public class GreedyAlgorithm01 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int input = scan.nextInt(); int count = 0; while(true){ if(input %5 ==0){ count += input/5; break;..