TypeScript는 왜 사용하는 걸까?
·
개발
* 자바스크립트 초 뉴비가 작성한 글입니다, 부족한 점 및 잘못된 내용은 언제나 지적 환영입니다. 현재 부스트캠프 웹 풀스택을 진행중에 있고, 언어는 자바스크립트를 기본으로 사용하고 있다. 그러나 많은 캠퍼들이 자바스크립트가 아닌 타입스크립트로 전환해서 사용하고 있었다. 근래들어 타입스크립트를 많이 사용한다고만 알고 있었는데 두 언어의 차이점은 무엇인지 알아보고, 내가 전환해야할 이유들도 작성해보려 한다. 타입스크립트란? 그리고 자바스크립트의 특징 타입스크립트는 기본적으로 자바스크립트 기반의 언어이다. 그리고 가장 다른점은 '타입' 의 검사이다. 타입스크립트는 타입의 명시를 필수로 하며, 그 검사를 엄격하게 수행한다. 자바스크립트를 사용할 때는 따로 타입을 명시하지 않아도 되고, 검사도 수행하지 않는다...
LV3 기지국 설치
·
프로그래머스
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12979# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이 문제의 핵심은 레이더가 닿지 않는 범위를 알아낸 다음, 레이더를 적절하게 설치하는 것이다. 위 케이스를 보면 레이더가 닿지 않는곳은 1~2 , 6 ~ 9 이다. 어떻게 구할 수 있을까? stations 배열에는 [4, 11]이 존재하고, w는 1이다. 6 ~ 9 부분을 생각해보자. 6을 생각해보면 4에서 w만큼 더하고, + 1을 더한 값이고, 9는 11에서 w만큼 빼고 - 1을 뺀..
[네이버 부스트캠프 8기] 멤버십 2주차 회고
·
회고
눈 깜짝할 새 일주일이 지나갔다. 바쁘게 살면 잡념에 매몰되지 않기 때문에 썩 싫어하진 않는다. 단 그 강도가 심해지면 내 생각과 행동 양식을 정리할 여유가 부족하다는 단점은 있지만 말이다. 2주차는 1주차보다 조금 성장했을까? 한 주를 다시 되돌아봐야겠다. 시작은 계획부터 2주차의 주된 내용은 1주차의 보완과, 백엔드라고 느꼈다. 저번주의 우다다다 구현방식을 지양하기 위해서 첫 날에 과제를 확인하고 계획표를 작성하기 시작했다. '프론트엔드', '백엔드', '내가 학습할 토픽들' 총 3가지로 나누어서 작성했고, 구현 같은 경우에는 '프론트 엔드', '백엔드' 를 날짜별로 구분해서 작성하였다. 작성하고 나서 보니 꽤 괜찮았던 거 같다. 무엇보다도 마음의 안정감이 생겼고, 하루의 밸런스를 잘 맞출 거 같은 ..
[네이버 부스트캠프 8기] 멤버십 1주차 회고
·
회고
현재 부스트캠프 8기 웹 모바일 웹 풀스택 과정을 진행하고 있다. 8월 27일에 시작을 했고 막 1주차를 마친 참이다. 1주 동안의 느낀점을 작성해보려 한다. 일주일동안의 계획을 러프하게 짜볼 것 월요일에 미션이 출제되고, 일주일 동안 그 미션을 구현하는 방식으로 학습 스프린트는 진행된다. 챌린지 때는 하루하루 미션이 출제되었기에 하루를 빡 집중해서 앞으로만 달리면 됐었다. 그러나 멤버십의 과제는 기간이 꽤나 길게 주어지기에 자신이 어떻게 일주일을 보낼지를 러프하게 정해 보고 수행하면 좋을 것이라고 생각했다. 요구사항 분석부터 계획을 짜기 위해서는 그전에 수행되어야 할 것은 어떤 기능이 필요한지, 어떤 부분을 학습하고 구현해야 하는지 분석하는 것이다. 따라서 무엇부터 해보려고 하지 말고, 시간을 가지고 ..
CSR, SSR 이란
·
개발
보통 페이지를 렌더링하는데 사용되는 방식은 두가지가 있다. 서버측에서 렌더링하는 SSR, 클라이언트측에서 CSR. 요새는 CSR을 많이 사용하는것으로 알고 있는데, 이 두가지가 어떻게 다른지 알아보려 한다. 우선 CSR, SSR 정리전 SPA, MPA 부터 정리하고 가보겠다. SPA (Single Page Application) SPA란 처음 데이터를 모두 받아온 다음 Single page에서 필요한 요소만 받아오는 application을 의미한다. 예로, 특정 버튼을 눌렀을 때, 헤더는 고정되어 있고 일부분만 변경되는 사이트들이다. MPA (Multi Page Application) MPA란 여러개의 페이지로 구성된 application을 의미한다. 특정 버튼을 누르거나 요청했을때 새로운 html을 서..
LV3 [KAKAO] 파괴되지 않은 건물
·
프로그래머스
문제 https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 정확성만 본다면 단순히 브루트포스로 풀 수 있는 문제이나, 시간을 따졌을때 그렇게 풀 수 없는 문제이다. 이 문제의 핵심은 '누적합' 인데, 나도 전혀 감을 못잡아서 풀이를 보고 알게 되었다. 개인적으로는 이런 문제를 접해보지 않고, 관련 테크닉을 모른다면 못푸는 문제가 아닐까 생각했다. (구현보다는 스킬, 테크닉 의존적인 문제 아닐까..) 이 누적합 테크닉은 1차원 배열을 먼저 예시로..
LV3 [KAKAO] [1차] 셔틀버스
·
프로그래머스
문제 https://school.programmers.co.kr/learn/courses/30/lessons/17678?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이 문제의 요점은, 콘이 언제와야 '마지막 버스' 를 탑승할 것인가 이다. 마지막 버스에 한자리라도 남아있다면 마지막 버스시간에 오면 되고, 마지막 버스에 사람이 꽉 차 있다면 마지막 버스에, 마지막에 탄 사람 -1 분에 도착하면 된다. 처음에는 마지막 버스라는거에 꽂혀 "뒤에서 부터 살펴봐야하나?" 했는데 애초에 수가 크지도 않고, 크루가 얼마나 일찍 도..
LV2 [KAKAO] 단체 사진 찍기
·
프로그래머스
문제 https://school.programmers.co.kr/learn/courses/30/lessons/1835 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 어떻게 풀면 좋을까 생각하다 완탐 (순열) 밖에 없는거 같아서 그렇게 풀었다. 우선 8명이 설 수 있는 모든 경우를 모두 구한다. 파이썬은 itertools 로 순열을 굉장히 쉽게 구할 수 있는 반면, 자바는 없다고 하더라. 그래서 perm이라는 순열을 만드는 함수를 만들었고 특정 순열이 한개 만들어지면 (8명이 모두 자리를 잡고 서있다면) 조건에 부합하는지 검사하도록 했다. 해당 배치가..
슬랙 알람 봇 만들고 배포하기 [JAVA / SPRING BOOT]
·
개발
개요 부스트캠프 챌린지 과정에서 출석체크 및 과제 제출 등 여러 활동이 있었는데, 온라인 과정이라 그런지 개발하다가 종종 잊어먹곤 했다. 그 때 자동으로 알람봇을 만들면 좋지 않을까 생각했다. 처음에는 이전에 사용해본 라인을 사용해볼까 하다가, 캠퍼들 모두에게 도움이 되면 좋을거라 생각했다. 그래서 부스트캠프에서 사용하는 Slack에 알람 봇을 하나 만들어 캠퍼와 공유했다. 대략 4주동안 활발히 사용했다. 감사하게도 많은 캠퍼분들이 좋아해주셨고, 내가 느끼던 불편한 문제를 프로그래밍으로 해결하였던 게 뿌듯했다. 당시에 만들면서 과정을 정리를 하지 않았다. 멤버십을 앞둔 지금, 멤버십에 사용할 알람 봇을 만들면서 해당 과정을 정리하려 한다. 자바, 스프링 프레임워크를 활용하여 작성했다. 아래는 전체 코드가..
LV3 [KAKAO] 합승 택시 요금
·
프로그래머스
문제 https://school.programmers.co.kr/learn/courses/30/lessons/72413 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 플로이드 알고리즘을 사용하면 금방 풀 수 있는 문제였다. 우선 fares를 활용하여 배열을 세팅하고, 플로이드 알고리즘을 수행한다. 그러면 노드간의 최단 경로를 얻을 수 있다. 이후 중요 포인트는 "택시를 어디까지 같이 타고 갈 것인가" 이다. 예시를 보면 5까지 같이 타고 간 다음에 각자 택시를 타고 이동한다. 이게 단순히 s에서 a로 가는거 + s에서 b로 가는 방식보다 훨씬 싸게 ..