분류 전체보기 235

.gitignore 파일이 동작하지 않을때 (.gitignore not working)

간혹 프로젝트를 진행하다가 Git의 관리대상 파일을 지정하기위해 .gitignore을 설정해 주었는데도, 무시되지 않고 계속 푸시 대상으로 지정되는 경우가 있다. 이 원인은 버전 관리 대상이 되는 파일/폴더가 .gitignore에 지정해주었다고 해서 스스로 지워지지 않기 때문이다. 그 대상 파일/폴더들은 이미 repository에 있고, 이를 해결하기위해 다음과 같이 한다: 이 명령을 실행하기 전에 변경사항을 모두 커밋하는것을 잊지 말자! git rm -rf --cached . git add . 이는 repository의 모든 파일들을 지우고, 다시 모두 add 해준다. (이렇게 해준 뒤에는 .gitignore의 규칙을 준수한다.) 아래는 이를 수행하였을때, .gitignore에 적용하였으나 계속 pus..

Git 2022.04.04

Git .gitignore 파일 적용

.gitignore이란? Git에서 관리가 필요하지 않은 파일들을 설정하는 파일이다. 여기서 설정하는 파일들은 git에서 추적하지 않게 된다. 관리하지 않아도 될 Backup File이나, Log File, 컴파일 된 파일들 로컬 개발 환경에 종속적인 파일들 기타 원격 저장소에 실수로 올라가지 않아야 하는 파일들 .gitignore파일 만들기 .gitignore 파일은 항상 프로젝트의 최상위 Directory에 존재해야 한다. 아래의 패턴을 활용하여 git이 untracked할 파일 또는 디렉토리 등을 정의하여 파일을 생성한다. [예시 파일 내용] # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* lerna-debug.log* # Diag..

Git 2022.04.04

[2022 KAKAO BLIND RECRUITMENT] 신고 결과 받기

카카오에서 진행하는 BLIND 코딩테스트가 핫하다고 한다. 오늘을 시작으로 앞으로 시간이 될 때마다 계속 풀어볼 예정이다. 문제1 - 신고 결과 받기 풀러가기 1. 문제 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지..

[Javascript] async & await 사용법

Javascript에서 async functions 그리고 await 키워드는 ECMAScript2017에 추가되었다. 이 기능들은 기본적으로 비동기 코드를 쓰고 Promise를 더 읽기 쉽도록 만들어 준다. 오늘은 이 async & await 키워드에 대해 알아보자. asunc/await의 기초 async/await 코드는 두 가지 부분으로 나눠져 있다. async 키워드 먼저 비동기 함수를 async 함수로 만들기 위하여 function()앞에 async 키워드를 추가한다. async fuction()은 await 키워드가 비동기 코드를 호출할 수 있게 해주는 함수이다. async function hello() { return "Hello" }; hello(); 이 코드는 Promise를 반환한다. ..

Git 이전 커밋으로 되돌아가기(git reset)

작업 하다보면 종종 예전 커밋 상태로 돌아가야할 상황이 생긴다. 이때는 git reset 명령어로 이를 수행할수 있는데, 이 명령어에 대해 알아보자. 1. 이전 커밋으로 되돌아가기(git reset) [사용법] $git reset 일단 git log 명령어로 현재의 로그를 보자. 현재는 db29957~ 로 시작하는 최신 HEAD임을 확인할 수 있다. 이를 어제의 상태인 7425d0e HEAD의 상태로 돌려보자. git reset --hard [HEAD] 명령어로 되돌린다. --hard 옵션은 돌아가려는 이력 이후의 모든 내용을 지워버린다. 명령어를 실행 후 현재 HEAD가 7425d0e위치에 있음을 출력해준다. 이후 다시 git log 명령어를 쳐보면 다음과 같이 예전 커밋상태의 로그가 출력됨을 확인할 ..

Git 2022.03.30

DLL, SO가 무엇인가?

DLL, SO파일은 라이브러리 파일이다. 라이브러리(Library) 소프트웨어 개발에서 자주 쓰고 기초적인 함수들을 중복 개발하는것을 피하기 위해 표준화된 함수 및 데이터 타입을 만들어서 모아 놓은 것이다. DLL(Dynamic-Link Library) - DLL은 동적 연결 라이브러리로써, 실행 파일에서 해당 라이브러리의 기능을 사용 시에만, 라이브러리 파일을 참조하여 기능을 호출한다. - 정적 링크(Static-Link Library)와는 다르게 컴파일 시점에 실행 파일에 함수를 복사하지 않고, 함수의 위치정보만 갖고 그 함수를 호출할 수 있게 한다. - DLL파일의 컴파일 아키텍쳐가 x64인지 x86인지 확인하여야 한다. 아키텍쳐가 다른 프로그램에서 호출할 수 없다. - Windows 운영체제에서 ..

ETC 2022.03.28

리눅스 압축 파일 관리 (tar 압축, 추출)

서론 tar는 리눅스에서 파일을 압축하거나 풀 때 사용하는 명령이다. "테이프 아카이버(Tape Archiver)" 의 앞글자를 조합한 이름이다. 0. tar 명령어 옵션 tar [OPTION...] [FILE]... -f : 대상 tar 아카이브 지정. (기본 옵션) -c : tar 아카이브 생성. 기존 아카이브 덮어 쓰기. (파일 묶을 때 사용) -x : tar 아카이브에서 파일 추출. (파일 풀 때 사용) -v : 처리되는 과정(파일 정보)을 자세하게 나열. -z : gzip 압축 적용 옵션. -j : bzip2 압축 적용 옵션. -t : tar 아카이브에 포함된 내용 확인. -C : 대상 디렉토리 경로 지정. -A : 지정된 파일을 tar 아카이브에 추가. -d : tar 아카이브와 파일 시스템 ..

Server/Linux 2022.03.28

Window10에서 .sh bash 파일 실행

윈도우 10에서 sh파일을 실행하려고 하면 위와 같이 에러가 난다. 이를 해결 하기 위해서 windows10의 subsystem을 사용하여 ubuntu를 사용할 수 있게 해주는 Windows Subsystem for Linux 기능이 있다고 하는데, 복잡하고 시간이 오래 걸릴거 같으니 다음과 같이 간단한 방법을 소개하고자 한다. 1. 먼저 아래 파일을 다운로드 받아서 원하는 폴더에 압축을 푼다. - 다운로드가 안된다면 아래 링크를 통해서도 받을 수 있다. sourceforge.net/projects/win-bash/files/shell-complete/latest/shell.w32-ix86.zip/download 나는 아래와 같이 C:/dev/SH 폴더를 만들어서 그곳에 풀어줬다. 이와같이 압축을 풀 위..

Server/Linux 2022.03.25

HackerRank 문제풀이 - 2 (Counting Valleys)

HackerRank 두번째 챌린지 문제 풀이이다. 어떻게 풀어갈지 고민하며 로직을 세우다 보면 재밌다. 1. 문제 시작 높이를 해수면으로 가정하여, 해수면보다 낮은 지점으로 내려갔다가 다시 해수면으로 돌아오는 순간 하나의 valley로 가정하여, 걸음 기록(상승, 하강)예제가 주어졌을때, 몇개의 valley들을 지나왔는지 계산해 내는 문제이다. 위의 예제에서는 한개의 valley를 지나온것이다. => 해수면으로부터 시작하여 한번 내려왔다가 다시 해수면으로 올라왔기 때문 2.풀이 'use strict'; import { WriteStream, createWriteStream } from "fs"; process.stdin.resume(); process.stdin.setEncoding('utf-8'); l..

HackerRank 문제풀이 - 1 (Socks Merchant)

코딩 인터뷰시 기업들에서 널리 활용중인 해커랭크(HackerRank)의 문제들을 풀어보고, 정리하여 포스팅 할 계획이다. (HackerRank사이트: https://www.hackerrank.com/) 1.문제 간단히 n개의 랜덤한 수를 제시해주어, 총 짝이 몇개인지 찾는 로직을 설계하는 문제이다. 짝을 찾지 못했거나 짝을 찾고난 뒤의 홀수개의 수는 모두 버린다 2. 풀이 'use strict'; import { WriteStream, createWriteStream } from "fs"; process.stdin.resume(); process.stdin.setEncoding('utf-8'); let inputString: string = ''; let inputLines: string[] = []; ..

반응형