전체 글(11)
-
[Javascript] 호이스팅
호이스팅이란 자바스크립트 엔진이 코드를 실행하기 전 함수, 변수, 클래스, 임포트의 선언문을 해당 범위의 최상단으로 끌어올리는 것처럼 보이는 현상을 의미한다. 이는 자바스크립트가 변수와 함수 선언을 메모리에 저장하는 방식때문에 발생하며, 이로인해 변수 선언 전에 참조할 수 있게 되는 현상이 발생한다. * 자바스크립트의 실행 컨텍스트가 활성화 되면 현재 컨텍스트 내부 전체를 훑어서 식별자 정보를 VariableEnvironment에 담는다.때문에 자바스크립트 엔진은 이미 변수명을 알고 있게 되어 코드가 최상단으로 끌어올려진 것처럼 보이는것이다. 호이스팅의 간단한 예시console.log(a); // Undefinedvar a = 3;console.log(temp); // Undefinedfunction ..
2024.11.04 -
이진 탐색(Binary Search) 구현하기 with Javascript
이진탐색이란 정렬된 리스트에서 범위를 절반씩 좁혀가며 특정한 값을 찾아내기 위한 알고리즘이다.탐색 범위를 절반씩 줄여나가는 방식으로 시간 복잡도는 O(log N)이다. 이는 순차 탐색보다 훨씩 빠르다. 이진 탐색 방식은 다음과 같다.우선 배열이 정렬되어 있어야한다. (오름/내림차순 상관없지만 여기선 오름차순으로 설명한다)찾고자 하는 값이 target일때, 배열의 중간에 위치한 값과 비교한다.target이 중간 위치 값보다 작다면 중간값의 좌측 배열을 범위로 지정하고 해당 범위의 중간 위치 값과 비교한다.반대로, target이 중간 위치 값보다 크다면 중간값의 우측 배열을 범위로 해당 범위의 중간 위치 값과 비교한다.이 과정을 반복하여 target과 일치하는 값을 찾았을 때 Index를 리턴한다.이를 코드..
2024.08.27 -
[Git] 깃 실속있게 정복하기 Part 3
작업 트리를 수정하는 방법들을 설명한다. 이번 포스팅에서는 Git의 살짝 고급(?) 기술을 소개한다. 혼자서 개발하다보면 작업 트리를 수정할 일이 많지 않지만 협업을 하게 된다면 얘기가 달라진다. 작업 트리가 깔끔해야 하는 상사를 만날 수도 있고, Commit convention을 굉장히 중요시하는 팀에서 일할 수도 있기 때문이다. (보통 Commit convention이 안 중요하다는 말은 아니다) 시작해보자 Git에서 작업한 내용 되돌리기 작업한 내용을 되돌리는 방법은 크게 두 가지가 있다. 1. git reset 2. git revert 먼저 git reset은 현재 Branch가 가리키는 Commit을 바꾼다. 마치 처음부터 commit을 하지 않은 것처럼 이전 Commit으로 Branch를 옮기..
2023.04.23 -
[Git] 깃 실속있게 정복하기 Part 2
1. Git의 HEAD의 개념 2. 상대 참조 Git을 사용하다 보면 HEAD라는 단어를 보게 된다. 다만 지금 처리해야 하는 업무에는 상관없으니까 담에 알아봐야지 하고 넘어가기 일쑤다. 이번 포스팅을 통해 Git에서 HEAD가 어떤 개념을 가지고 있고, 어떻게 사용할 수 있는지 알아보자. HEAD란 ? HEAD 는 포인터이다. 바로 현재 체크아웃 되어있는 Branch의 마지막 Commit을 가리키는 포인터다. Branch를 통해 간접적 가리키거나, Commit을 직접 가리킬 수도 있다. git clone [url] git log 프로젝트를 clone 받았을 때 git log 명령어를 실행해보면 다음과 같다. HEAD -> main를 볼 수 있는데, 현재 HEAD가 main branch를 가리키고 있다는..
2023.04.23 -
[Git] 깃 실속있게 정복하기 Part 1
Git의 개념부터 기본 명령어를 설명합니다. clone, add, commit, push, pull, checkout, branch, merge, rebase Git 이란? 위키백과에서 Git을 설명한 내용을 보면 다음과 같다. “컴퓨터 파일의 변경 사항을 추적하고 여러 명의 사용자 간에 해당 파일들의 작업을 조율하기 위한 스냅샷 스트림 기반의 분산 버전 관리 시스템이다.” 가볍게(?) 한 문장으로 잘 표현한 것 같다. 변경을 추적하고 작업을 조율한다는 것이 무엇인지, 스냅샷 스트림이 무엇인지, 분산 버전 관리 시스템이 무엇인지 알아보자. Git 은 아래 두 가지 상황을 커버한다. 첫 번째, 위 사진처럼 파일들을 관리하게 되면 어떤 파일이 최신 파일이며 각 파일이 어디가 어떻게 변경됐는지 알기 어렵다. ..
2023.04.23 -
[Github] 계정별 SSH 접속 설정하기
하나의 환경에서 다수의 SSH Key pair를 사용하여 Github repository에 접근하는 방법을 설명한다. 개발하다 보면 회사와 개인 계정 등 다수의 Github 계정을 사용하는 경우가 있다. 그것도 한 컴퓨터에서. 이런 상황에서 SSH 방식으로 private repository에 접근하는 방식을 사용하게 되면 아래 이슈를 맞닥뜨리게 된다. “엥 ??? 나 SSH 설정해놨는디 ??” Settings -> SSH and GPG keys 메뉴로 가서 SSH keys를 확인하고, ~/.ssh 폴더로 가서 Key pair의 존재도 확인했는데 안 된다. 혹시나 해서 다시 한번 SSH 설정을 시도하려면 아래 포스팅을 참고해 주세요. [Github] SSH 설정하기 https://juni-in.tistor..
2023.04.23 -
[Github] ssh 접속 설정하기
SSH에 대한 개념과 SSH방식으로 github repository에 접근하는 방법을 설명한다. Github repository를 clone 하는 방법은 HTTPS, SSH가 있다. Public repository라면 HTTPS 방식이 설정할 필요 없이 사용하기 수월하다. 다만, Private repository라면 clone, push, pull 할 때마다 username, password를 입력해주어야 한다. (2021년 8월 13일부로 Personal access token을 발급 받아서 사용해야한다) 매번 귀찮게 username과 password/personal access token을 입력하지 말고 SSH 방식 사용해보자. (Github Credential이나 Mac의 KeyChain을 활용하여..
2023.04.23 -
들어가며...
글쓰기와는 정말 친하지 않다. 사실 읽기에도 흥미가 없었다. 어렸을 때부터 책과 담을 쌓았고, 수능 언어영역의 벽에 부딪히고 처음으로 후회했었다. 이후 글과는 상관없는 진로를 택하여 후회는 서서히 잊혔다. 그런데 이게 웬걸, 개발자가 되었다. 20살 때에는 전혀 생각지 못했던 개발자라는 직업을 현재 업으로 삼고 있고, 개발자는 글쓰기와 무관한 직업이 아니더라…(물론 글을 안 써도 뛰어남이 묻어나는 개발자가 많지만 나는 해당 사항 없다) 첫 후회를 하고 10년 후 지금, 똑같은 후회를 하고 있다. 그동안 노력한 게 없으니 글에 흥미와 재주가 없는 상황은 변함이 없지만 지금 나에게 미치는 영향은 더 크게 느껴진다. 이렇게 둘 수는 없지 않겠는가. 이제는 더 이상 물러날 곳이 없다 맞다. 이제는 물러나서는 안..
2023.04.23 -
[Django 파헤치기] Bootstrap Template 활용하기
[Django 파헤치기] Bootstrap Template 활용하기 ※ 저도 공부하면서 업로드 하고 있습니다. 혹시 부족한 부분이 있으면 댓글로 가르쳐주시면 감사하겠습니다! 혹시 질문이 있으셔서 댓글에 남겨주신다면 성실히 답변하겠습니다. 디자인 능력이 없어도 괜찮은 모양을 만들 수 있습니다! 정보의 바다에는 항상 오픈된 소스들이 어마무시하게 많으니까요. 오늘은 무료 Bootstrap Template를 활용해서 제 포트폴리오 메인 화면을 만들어보겠습니다. 아래 링크로 들어가 보시면 무료버젼의 템플릿들을 사용하실 수 있습니다.(아래 사이트 말고도 많이 있습니다! https://startbootstrap.com/ 무료 버젼도 있고 유료 버젼도 있습니다~~ 여러 템플릿 중에서 제 맘에 든 템플릿으로 시작하겠습니..
2019.03.06 -
[Django 파헤치기] 프로젝트 만들기
[Django 파헤치기] 프로젝트 만들기 ※ 저도 공부하면서 업로드 하고 있습니다. 혹시 부족한 부분이 있으면 댓글로 가르쳐주시면 감사하겠습니다! 혹시 질문이 있으셔서 댓글에 남겨주신다면 성실히 답변하겠습니다. 처음 Python을 접하고 Django를 사용하여 웹페이지 만들기를 시도했을때 헷갈렸던 그때를 생각하며 최대한 상세히 작성하였습니다! 저와 같은 상황인 분들에게 도움이 되길 바랍니다. 1. 프로젝트 만들기C 드라이브의 적절한 디렉토리에(필자는C:\work_Django이다.) 프로젝트를 생성한다.django-admin startproject myweb 터미널에서 위 명령어를 입력하면 해당 디렉토리에 myweb 디렉토리가 생성된다. 2. 앱 만들기myweb 디렉토리로 들어가서 앱을 생성한다.djang..
2019.02.09