전체 글

전체 글

    Typescript 경로 모듈화, 경로 정규화 과정과 5.8.0 버전에서의 최적화

    개요자바스크립트나 타입스크립트 프로젝트에서 모듈이나 컴포넌트를 불러 올 경우 다음과 같은 형태로 모듈이나 컴포넌트를 불러오는 경우를 많이 경험할 수 있다.import { whereAmI } from "../../../../../../where/the/hell/are/you";상대 경로와 절대 경로를 사용해서 모듈이나 컴포넌트를 불러오는 방법은 매우 일반적이지만 이보다 더 좋은 방법을 소개하려고 한다.기존의 문제점상대 경로 상대 경로 방식으로 모듈을 불러오는 방식은 매우 간편하다는 장점이 있다. 일반적인 IDE에서는 내부 모듈의 위치를 상대 경로로 자동으로 작성해준다. 하지만 모듈을 다른 폴더로 옮길 경우에 해당 모듈을 사용하는 모든 파일의 경로를 수정해야 한다. 물론 이와 같은 경우에도 IDE가 알아서 ..

    Linux 해외 아이피 접속 차단을 위한 ufw 방화벽 설정 방법

    개요본가에 있는 MySQL 서버를 사용할 일이 있어서 서울에서 외부 접속을 시도하였는데 접속이 거부당했다.본가에서 라즈베리파이를 확인하였더니 전원이 꺼져 있었다.마지막으로 접속했을 때 poweroff 명령을 사용한 적도 없었고 무언가 문제가 발생하였다고 생각하여 ssh 접속 로그를 확인하였다.로그를 보니 엄청나게 많은 brute force 공격 흔적이 있었다.포트번호를 바꿔가며 접속을 시도하는 것을 보아하니 일단 외부 접속을 열어둔 IP라면 좀비 PC를 활용하여 무차별적으로 접속을 시도하는 것 같았다.로그에 찍힌 IP 주소는 모두 해외였기에 이참에 해외 공격을 원천봉쇄해야겠다고 생각이 들었다.한국 IP 대역 다운로드우선 한국 IP만 허용해야 하기 때문에 한국의 IP 주소들을 다음 명령어를 통해 다운받는다..

    Typescript 5.8.0의 조건부 반환 타입 검사 기능

    개요Typescript로 개발을 하면서 때론 매개변수의 유형에 따라 다른 타입의 값을 return하는 함수를 작성하고 싶을 수 있다.예를 들면 다음과 같다.declare const record: Record;declare const array: string[];function getObject(group) { if (group === undefined) { return record; } return array;}const arrayResult = getObject("group");const recordResult = getObject(undefined);해당 코드에서 arrayResult 변수의 타입은 string[] 이 되어야 하고 recordResult의 타입은 이 되어야..

    [프로그래머스] 거리두기 확인하기(C++)

    문제https://school.programmers.co.kr/learn/courses/30/lessons/81302# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr해당 문제는 2021 카카오 채용연계형 인턴십 문제이다. 문제 내용은 다음과 같다. 개발자를 희망하는 죠르디가 카카오에 면접을 보러 왔습니다.코로나 바이러스 감염 예방을 위해 응시자들은 거리를 둬서 대기를 해야하는데 개발 직군 면접인 만큼아래와 같은 규칙으로 대기실에 거리를 두고 앉도록 안내하고 있습니다.대기실은 5개이며, 각 대기실은 5x5 크기입니다.거리두기를 위하여 응시자들 끼리는 맨해튼 거리가 2 이하로 앉지 말아 주세요.단 응시자가..

    라즈베리파이 외부 ssh 접속을 위한 포트포워딩

    개요라즈베리파이를 외부에서 편하게 접속하기 위해서는 포트포워딩이 필요하다.ssh의 기본 포트는 22번이며 그냥 22번 포트를 포트포워딩하면 되는 간단한 작업이라고 생각할 수 있다.하지만 22번 포트를 포트포워딩 할 경우 해커의 무차별 대입 공격의 대상이 되기 쉽다. 즉 외부 공격에 매우 취약해진다.때문에 본 글에서는 ssh 접속 기본 포트를 변경하여 포트포워딩 하는 것을 다룬다.해당 내용을 완벽하게 이해하기 위해서는 공인 ip와 사설 ip의 이해가 필요하다.Putty 설치윈도우에서 NAS 접속을 위해서는 putty라는 프로그램이 반드시 필요하다. putty는 다음 사이트에서 설치할 수 있다.https://www.putty.org/설치가 끝났다면 Host Name에 라즈베리파이의 사설 ip 주소를 입력한 ..

    LG유플러스 유레카 SW 아카데미 2기 합격 후기(프론트엔드 대면)

    개요졸업하고 알고리즘 공부부터 다시 시작하려고 계획을 하고 있었는데 대학 친구의 추천으로 LG유플러스 유레카 SW 아카데미 2기에 지원하게 되었다. 현재 나는 졸업을 앞둔 취업준비생으로서, 앞으로 계획한 학습 내용과 커리큘럼이 대부분 일치하며, 취업까지의 공백기를 효과적으로 활용할 수 있을 것 같아 지원하게 되었다.선발 일정유레카 2기의 선발 절차와 일정은 다음과 같다. 전형은 비전공자와 전공자로 나뉘게 되며 SW 적성 진단 과정 진행에서 서로 차이가 있다.SW적성 진단대부분의 경우 서류에서 탈락하는 경우는 없고, 서류 합격을 하게 되어 적성 진단을 보게 되었다.나는 전공자이기 때문에 개발구현능력 검사를 진행하였다.  서류 합격을 하게 되면 위와 같은 제목의 메일이 오게 되는데 향후 기수분들을 위한 팁을..

    2024년 회고

    개요2025년이 무려 19일이나 지난 오늘, 좀 늦은 감이 있지만 24년 회고를 하려고 한다. 알고리즘 24년 상반기에 네이버 공채 코딩테스트를 보고 난 후, 알고리즘이 많이 부족함을 느껴서 5개월간 꾸준하게 문제를 풀었다. 23년 회고때는 실버에 머물렀었는데 이렇게 풀다보니 어느새 골드 3에 도달해 있었다. 골드를 처음에 달성했을때는 기분이 정말 좋았었는데 그래프탐색과 백트래킹만 집중적으로 풀어서 찍은 티어라서 물티어라고 생각한다. 현재는 알고리즘 문제를 안푼지 오래되서 감을 많이 잃었다. 역시 꾸준한게 중요하다.. 때문에 다시 꾸준하게 문제를 풀을 예정이다.연구실연구실의 경우 이제 프로젝트의 막바지에 들어가고 있다. 24년에는 "영상데이터 검출객체 색인 구축" 이라는 주제로 논문을 작성하였다.  연구..

    [RN] Warning: A props object containing a "key" prop is being spread into JSX 에러

    개요프로젝트를 진행하던 중 의문의 에러가 발생했다. React-Native의 Material-Top-Tab-Navigation이 있는 컴포넌트에 들어가면 해당 에러가 발생했다. 단순한 경고라고 생각하고 넘어갈 수도 있지만 콘솔에는 ERROR로 출력되는 모습이다. 나중에 앱 빌드할 때 문제가 될 수 있으니 해결하고 넘어가려 했다.해결 방법24년 5월 8일 공식 라이브러리의 issue에서 에러 해결법을 찾을 수 있었다. https://github.com/react-navigation/react-navigation/issues/11989 A props object containing a "key" prop is being spread into JSX · Issue #11989 · react-navigation..