밥값하는 개발자의 공부노트
Daily Logs
-
8월 첫째주 요약
8월 첫째주 요약
2021.08.09첫째주 월화수에 학원에서 휴가를 줘서 쉰다,,, 하지만 코로나가 창궐하고 숙제가 있는데 제대로 쉬지 못할꺼 같다 월요일 친구(?)를 만나서 저녁을 먹고 술을 마시고 집에 들어왔다 만나서 포크너에 가서 파스타와 리조또를 먹었는데 개존맛탱구리였다. 진짜로 넘 맛있었고 배달도 하는거 같은데 배달이 된다면 시켜서 먹고 싶다,,, 왕새우 개 존맛탱 그걸 먹고 쇼텐? 이라는 곳에 가려고 하는데 미라이가 보여서 거기에 들어갔다 원래는 미라이를 가려고 했지만 서치를 했을땐 월욜에 휴무라고 해서 쇼텐을 가려는거 였는데 미라이가 열었길래 미라이로 들어갔다 우리는 2층에 자리를 잡고 주문을 했다 생연어랑 가리비 구이를 주문하고 참이슬을 주문했다 각 1병씩 해치운뒤 헤어져 집에갔다 나름 좋은 곳을 찾아서 기분은 좋았다 그러고.. -
7월 31일
7월 31일
2021.07.31오늘은 토요일이다. 7월의 마지막 날 7월 퇴사하고 놀다가 학원다니고 학원을 다니는건 내가 선택한 일 후회는 안한다. 하지만 학원 일정이 빡세긴 하다. 아침 6시에 일어나 운동을 다녀오고 집에와서 씻고 학원을 가거나 온라인 수업이면 스터디카페에 가서 수업을 듣는다 끝나는 시간은 21시정도? 미친 일정,.,,, 미친 숙제와 과제 하루하루 어떻게든 버티고 있는거 같다는 생각이 든다. 목요일 학원 수업이 끝나고 잠깐 친구만나서 커피를 마셨다. 금요일 잠깐 만나 친구를 또 만나 커피를 마시다가 친구네 집에서 술을 마시게 되었다. 안주는 닭강정 소주는 처음처럼 내 인생을 처음 살고 있는것 처럼 처음이라는 단어는 많은 의미를 담고 있는거 같다. 그 다음날 일어나서 점심을 먹고 씻고 스터디카페에 가서 학원 인터넷 강.. -
7월 18일 - 일요일
7월 18일 - 일요일
2021.07.18오늘 나의 일요일은 한가하다. 12시쯤 일어나서 유튜브를 보다가 어떤 한 영상을 보게 되었다. 그 영상은 14년도 KBS에서 방영했던 "연애의 발견" 이라는 드라마 소개 영상이었다. 아직도 기억한다. "연애의 발견" 드라마는 내 군생활 마지막쯤에 방였했었다. "연애의 발견" 드라마를 군대에서 몰래 볼 정도로 너무 좋아했다. 전역 한 후 2번정도 다시 볼 정도로 너무 좋아했고, 예쁜 연애를 하고 싶었다. 비록 지금은 솔로지만 그래도 그 당시에 연애 할 때에는 후회없는 연애를 하고 싶어 최선을 다 해서 연애를 하려고 노력했다. 하지만 내가 노력을 했다지만 그건 어디까지나 나의 이야기다. 상대방의 이야기도 들어봐야 알겠지만 내 기억이 완전하지 않기 떄문에 믿을 수 없을 것 같다. 그런 생각이 들어 다시 나는 .. -
7월 17일 - 토요일
7월 17일 - 토요일
2021.07.17주말은 주말이다. 아침부터 공기가 다르다. 나의 눈은 12시쯤부터 활동하기 시작했다. 이것이 주말의 첫 움직임이다. 핸드폰을 켜서 즐거움 가득한 곳, 해피한 일상만 있는 인스타그램을 본다. 나 역시 즐거움과 해피한 일상들만 가지고 싶다는 생각으로 인스타그램을 껏다. 그 다음 유튜브를 켜서 알 수 없는 알고리즘의 공격들을 받는다. 나는 아무것도 할 수 없다. 나의 손가락은 그저 그대로 알 수 없는 알고리즘들을 누른다. 그러던 와중 먹방을 보며 배가 고프단 생각에 몸을 일으켜 주방으로 간다. 엄마가 해둔 음식들을 먹는다. 나는 그저 동물인거 같다. 가끔 음식을 먹으면 맛을 생각하고 먹는지? 그냥 배를 채우기 위해 먹는지? 헷갈린다. 다이어트를 오래해서 그런지 맛을 생각하지 않는것 같다. 그저 이거 먹으면 살.. -
7월 16일 - 2일째
7월 16일 - 2일째
2021.07.16(디지털컨버전스) [B/L] JAVA기반 스마트웹 개발 전문가 양성_B 2일째 날이 밝았다. 퇴사한 후 자유롭던 기상시간을 앞으로 규칙적이게 바꿔야 한다. 하지만 규칙적이게 바꿔도 힘든건 똑같이 아침이다. 씻고 가방에 짐들을 챙겨서 어제 등록한 스터디카페로 향했다. 집에서 3분이내에 있는 곳으로 선택했다. 코로나로 인해 대면수업과 비대면 수업의 인원을 나누어서 진행하기 때문에 나는 오늘 온라인 수업이다. 온라인 수업이지만 구글미팅 이라는 프로그램과 슬랙이라는 프로그램을 이용하여 수업은 진행되었다. 실시간으로 선생님의 화면을 보여주면서 따라하는 방식으로 진행되었다. 처음엔 어떤 프로그램을 설치해야 하며, 어떤식으로 관리해야 하며 등등 다양한 방법과 설명을 들었다. 설치하는 방법 및 링크 등등 다양한 정보들.. -
7월 15일 - 1일째
7월 15일 - 1일째
2021.07.16(디지털컨버전스) [B/L] JAVA기반 스마트웹 개발 전문가 양성_B 7월 15일,,, 시작하는 날 이다. 21년 6월 30일까지 일하고 퇴사한 후 술마시면서 놀고, 숙제를 하긴 했다지만 상담때 대표님이 이야기 해준것들을 생각하면 할 수록 무서웠다. 하지만, 재미있을 것 같아 가슴한편으론 기대하고 있었다. 학원에 도착해서 입실체크를 해야한다. 집에서부터 꼬깃꼬깃 챙겨온 내일배움카드를 꺼내들어 출석체크 기계에 찍었다. .....인식을 하지 않는다. 더워서 땀을 흘리고 있는 나는 당황을 해서 땀샘에서 더욱 더 땀을 배출시킨다. 왜 안돼지.... 란 생각으로 계속 찍어봤지만 인식하지 않는다... 지읒됐다...를 반복하면서 땀은 눈치없이 흐른다. 다행히도 인포메이션 직원의 도움으로 어플로 qr코드를 인식하여 ..
Recent Posts
-
큐 - 구현
큐 - 구현
2024.01.28큐(Queue) 구현: 양방향 연결 리스트를 활용한 순차적 데이터 처리 큐는 FIFO(First In First Out) 방식으로 데이터를 관리하는 선형 자료구조입니다. 데이터의 삽입(enqueue)은 한쪽 끝에서 이루어지고, 데이터의 삭제(dequeue)는 반대쪽 끝에서 이루어집니다. 이번 섹션에서는 양방향 연결 리스트를 활용하여 큐를 구현하는 방법을 살펴보겠습니다. 1. 양방향 연결 리스트의 수정 양방향 연결 리스트는 각 노드가 다음 노드 뿐만 아니라 이전 노드를 가리키는 포인터도 가지고 있습니다. 이를 통해 노드의 추가 및 삭제가 더욱 유연하고 효율적으로 이루어질 수 있습니다. // DoublyLinkedList.mjs class Node { constructor(data, next = null, .. -
큐 - 개념
큐 - 개념
2024.01.28큐(Queue) 구현: 양방향 연결 리스트를 활용한 데이터 처리 큐(Queue)는 First In First Out(FIFO) 규칙을 따르는 선형 자료구조로, 데이터의 삽입은 한쪽 끝에서, 삭제는 반대쪽 끝에서 이루어집니다. 큐의 가장 큰 특징은 가장 먼저 들어온 데이터가 가장 먼저 나간다는 것입니다. 이번 섹션에서는 양방향 연결 리스트를 활용하여 큐를 구현하는 방법을 살펴보겠습니다. 1. 양방향 연결 리스트의 구현 양방향 연결 리스트는 각 노드가 다음 노드 뿐만 아니라 이전 노드를 가리키는 포인터도 가지고 있습니다. 이를 통해 노드의 추가 및 삭제가 더욱 유연하고 효율적으로 이루어질 수 있습니다. // Node.js class Node { constructor(data, next = null, prev.. -
스택 - 구현
스택 - 구현
2024.01.28스택(Stack) 구현: 자바스크립트를 활용한 데이터 처리 스택은 데이터를 FILO(First In Last Out) 방식으로 처리하는 선형 자료구조입니다. 스택은 데이터의 삽입(push), 삭제(pop), 최상위 데이터 확인(peek), 비어있는지 확인(isEmpty) 등의 작업을 할 수 있습니다. 연결 리스트를 사용하여 스택을 구현할 경우, 이러한 작업들이 매우 효율적으로 수행될 수 있습니다. 1. 스택의 추상 자료형 구현 스택의 기본적인 기능을 아래와 같이 구현할 수 있습니다. 이 예에서는 연결 리스트(LinkedList)를 사용하여 스택을 구현하였습니다. // Stack.mjs import { LinkedList } from "./LinkedList.mjs"; class Stack { constr.. -
스택 - 개념
스택 - 개념
2024.01.28스택(Stack) 이해와 구현 스택은 데이터를 제한된 방식으로 접근할 수 있는 선형 자료구조입니다. 스택은 특히 "First In Last Out(FILO)" 또는 "Last In First Out(LIFO)"의 특성을 가지며, 이는 가장 마지막에 쌓은 데이터를 가장 먼저 꺼낼 수 있다는 의미입니다. 일상생활에서 접시를 쌓는 것과 같이, 스택은 데이터의 추가와 삭제가 한 방향에서만 이루어지는 구조를 가지고 있습니다. 1. 스택의 기본 동작 스택의 기본적인 동작은 다음과 같습니다: push: 스택의 맨 끝에 데이터를 추가합니다. pop: 스택의 맨 끝에서 데이터를 꺼냅니다. peek: 스택의 맨 끝 데이터를 확인합니다. isEmpty: 스택이 비어 있는지 확인합니다. 2. 스택의 구현 연결리스트를 사용하여.. -
연결리스트 - 구현
연결리스트 - 구현
2024.01.28연결리스트 구현하기: 자바스크립트를 활용한 데이터 관리 이번 강의에서는 자바스크립트를 이용해 연결리스트를 구현하고, 그 사용법을 알아보았습니다. 연결리스트는 데이터를 메모리에 효율적으로 분산하여 할당하고, 이를 서로 연결하여 관리하는 자료구조입니다. 이 자료구조는 다른 구조인 스택, 큐의 구현에도 활용될 수 있습니다. 다음으로 연결리스트의 추상 자료형과 실제 구현 방법을 살펴보겠습니다. 1. 연결리스트의 추상자료형 연결리스트는 데이터와 데이터에 대한 연산을 정의하는 추상자료형으로 표현됩니다. 연결리스트에서 필요한 기본 연산은 다음과 같습니다: printAll(): 모든 데이터 출력 clear(): 모든 데이터 제거 insertAt(index, data): 원하는 인덱스에 데이터 삽입 insertLast(.. -
연결리스트 - 개념
연결리스트 - 개념
2024.01.28배열과 연결 리스트: 데이터 구조의 선택 프로그래밍에서 데이터를 효율적으로 관리하기 위해 배열과 연결 리스트는 기본이 되는 자료구조다. 각각의 특성과 장단점을 이해하고 상황에 맞게 적절한 자료구조를 선택하는 것이 중요하다. 이번 강의에서는 배열과 연결 리스트의 특성을 비교하고, 언제 어떤 자료구조를 선택해야 하는지에 대해 알아본다. 1. 배열: 연속된 메모리 공간을 사용하는 자료구조 인덱스를 통한 빠른 접근: 배열은 메모리 상에서 연속된 공간을 차지하기 때문에, 시작 주소만 알면 인덱스를 통해 데이터에 빠르게 접근할 수 있다(O(1)). 데이터 삽입과 삭제의 비효율성: 배열에 데이터를 삽입하거나 삭제할 때는 기존 데이터를 복사하고, 새로운 메모리 공간을 할당하는 등의 과정이 필요하다. 2. 연결 리스트:.. -
배열
배열
2024.01.28배열: 기본이 되는 자료구조의 이해 배열은 프로그래밍의 가장 기본이 되는 자료구조 중 하나다. 자바스크립트를 비롯한 대부분의 프로그래밍 언어에서 배열은 데이터를 효율적으로 관리하기 위해 사용된다. 하지만 자바스크립트의 배열은 다른 언어의 일반적인 배열과 몇 가지 중요한 차이점이 있다. 이 글에서는 일반적인 배열의 특성과 자바스크립트 배열의 독특한 특성을 살펴본다. 1. 일반적인 배열의 특성 메모리 상의 배열: 배열은 메모리에서 연속된 공간을 차지한다. 예를 들어 **int arr[10]**으로 배열을 선언하면, 운영체제는 10개의 정수가 들어갈 수 있는 연속된 메모리 공간을 확보한다. 인덱스를 통한 빠른 접근: 배열의 인덱스를 통해 데이터에 빠르게 접근할 수 있다. 인덱스 참조는 O(1)의 시간 복잡도를.. -
자바스크립트 실행 환경 구축
자바스크립트 실행 환경 구축
2024.01.28자바스크립트를 활용한 자료구조와 알고리즘: 환경 구축 가이드 자바스크립트로 자료구조와 알고리즘을 배우기 위해서는 적절한 개발 환경 구축이 필수적이다. 본 강의에서는 Visual Studio Code와 Node.js를 사용하여 자바스크립트 개발 환경을 구축하고, 간단한 테스트 코드를 실행해본다. 아래 단계를 따라 환경을 구축해보자. 1. 개발 도구 설치 Visual Studio Code (VSCode): 자신의 운영체제에 맞는 VSCode를 설치한다. Node.js: 자신의 운영체제에 맞는 Node.js를 설치한다. 2. 터미널 사용 윈도우 사용자는 “Power Shell”, 맥 사용자는 “Terminal”을 실행한다. 3. Node.js 설치 확인 터미널에 **node -v**를 입력하여 Node.js가.. -
시간복잡도
시간복잡도
2024.01.28알고리즘의 효율성: 시간복잡도의 이해 이전 강의에서 우리는 자료구조가 동일해도 알고리즘은 다양할 수 있다는 것을 배웠다. 하지만 알고리즘 중에서도 '더 좋은' 알고리즘은 무엇일까? 이 질문에 대한 답은 사용자의 요구에 따라 달라진다. 어떤 이는 메모리 사용량을 최소화하는 것을 선호할 수 있고, 다른 이는 처리 속도를 가장 중요시할 수 있다. 이처럼 사용자의 요구사항에 따라 알고리즘의 효율성이 결정된다. 1. 시간복잡도: 알고리즘 성능의 기준 시간복잡도는 알고리즘이 문제를 해결하는 데 걸리는 시간을 나타낸다. 하지만 실제 시간을 측정하는 것보다는 코드에서 성능에 큰 영향을 미치는 부분을 분석하여 실행 시간을 예측하는 것이 일반적이다. 이런 분석에서 가장 큰 역할을 하는 것이 바로 '반복문'이다. 1.1. .. -
자료 구조와 알고리즘이란?
자료 구조와 알고리즘이란?
2024.01.28프로그래밍의 핵심: 자료구조와 알고리즘 프로그래밍의 세계에서 자료구조와 알고리즘은 중요한 두 축이다. 이 글에서는 자료구조의 기본 개념부터 알고리즘의 적용까지, 그 핵심을 짚어본다. 1. 자료구조: 데이터의 체계적 관리 자료구조는 데이터가 어떻게 조직되고, 관리되며, 어떤 방식으로 사용되는지를 규정한다. 기본적인 자료구조로는 변수와 배열이 있다. 이들은 데이터를 저장하고 처리하는 방식에서 차이를 보인다. 1.1. 일반 변수와 배열: 데이터 저장의 기본 일반 변수: 단일 데이터를 저장하며, 각 변수는 독립적인 데이터를 갖는다. jsxCopy code let a = 87; let b = 70; let c = 100; let average = (a + b + c) / 3; 배열: 여러 데이터를 하나의 변수에서.. -
자주 쓰이는 마스킹(정규식) 방법
자주 쓰이는 마스킹(정규식) 방법
2022.08.12e-commerce 및 회원정보 등에서 자주 사용하는 마스킹 방법 (정규식) 1. 천 단위 콤마( , ) 추가하기 const addComma = (num: number) => { return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); }; console.log('addComma - result : ', addComma(123456789)); 2. 휴대폰 번호 하이픈( - ) 추가하기 const addHyphen = (phoneNum: String) => { if (!phoneNum) return ''; return phoneNum.replace(/^(\d{2,3})(\d{3,4})(\d{4})$/, `$1-$2-$3`); }; console.log('.. -
Git 다양한 상황에 따른 해결방법
Git 다양한 상황에 따른 해결방법
2022.06.02git 취소하고 싶을때 방식 4종류 1. 로컬 변경 취소 $ git checkout . 신규 추가한 파일에 관해서는 삭제되지 않으므로, 완전히 원래대로 되돌리려면 따로 삭제해야 한다. $ git clean -df . 2. add를 취소 $ git reset HEAD . 이것만 하면 add 상태밖에 취소되지 않기 때문에,다른 변경도 취소하고 싶으시다면, 1. 로컬 변경 취소 작업도 할 필요가 있다. 3. commit 취소 $ git reset . mode의 디폴트는 --mixed이기 때문에변경한 파일은 모두 그대로이고 git의 이력만 바뀔 뿐. 변경한 파일을 포함하여 모두 지정된 commit상태로되돌리고 싶은 경우 mode에 --hard를 지정한다. 또, 이쪽도 --hard를 지정했다고 해도 신규 추가 파..