분류 전체보기 210

23.07.14 CICD 구축하기

이거 때문에 진짜 미치겠다. 어떤 툴을 사용하냐부터 고민을 했는데 git actions로 정했다. 이유는 일단 처음 해보는 작업이라서 그나마 쉬운 방법으로 선택했고 최근에 출시되긴 했어도 git hub를 많은 사람들이 사용하는만큼 git actions가 앞으로 더 많이 사용될 것이라고 생각해서이다. 그렇게 어떻게 할지 몰라서 한참 구글링하며 GPT한테 물어보며 결국 새벽까지 하지 못했고 진행 상황은 이게 git actions만 사용하면 되는 줄 알았는데 EC2 인스턴스로 배포를 하기 때문에 AWS에서 설정을 많이 해줘야한다는 것이었다. 그런데 git actions에서 계속 workflows만 건드리고 있었다. 그 workflows도 사람마다 달라서 정해진 형식을 찾기 힘들었고 어떻게 작성을 해야지 이게 ..

23.07.13 git flow 연습 2

로컬 환경에서 하다가 원격 저장소를 활용해서 하면 다른 점이 있을까 해서 같이 페어로 하는 분이랑 같이 해봤는데 차이가 많이 있었다. 로컬환경과 달리 원격에 브랜치와 로컬 브랜치가 나뉘고 일일이 풀을 하고 푸쉬도 해야한다는 점도 달랐지만 여러 사람이 같이 하기에 내가 혹시나 잘못 올린다면 다른 사람들에게도 영향이 간다는게 가장 컷다. 그리고 내가 로컬 환경에서 만든 것들은 커밋을 뭐라고 해놔도 나만 알아보면 되기에 문제가 없는데 여러 사람이 작업하면 소통의 문제가 생기기도 하고 내가 커밋 메세지를 이상하게 써놓으면 일일이 답변을 해줘야하는 불편함도 있을 것이다. 특히나 커밋을 되돌리려고 할 때 꼬이기 시작하면 지금 내가 느끼기엔 되돌리기가 힘든 게 아니라 되돌릴 수가 없었다. reset은 그나마 어떻게 ..

23.07.12 git Flow 연습

다음 주부터 1주간 소규모 프로젝트가 있기 때문에 git flow를 영상 보면서 혼자 해봤다. 상황에 맞게 변형을 해서 사용하라도 하지만 기본부터 알아야 변형을 하기 때문에 무작정 해본다. 처음 항해 시작하자마자 했던 미니 프로젝트에서는 첫날부터 예비군을 가고 기간도 짧고 git도 처음이고 그랬기에 코드가 날라가는 일도 있었다. 그래서 이번엔 git라도 알고 가자라는 생각에 따라서라도 해봤는데 git 명령어에도 조금 익숙해지고 기본적인 순서나 개념을 익히는데 도움이 되었다.

23.07.11 자료구조 힙(heap) 코드 분석

내가 지금 힙을 구현하려면 어떻게 해야하나 막막해서 다른 누군가가 구현한 힙 코드를 해석해봤다. class MinHeap { constructor() { this.heap = [ null ]; } 힙이 구현될 공간, 편의상 0번 인덱스는 비우고 1번부터 시작해서 순서 및 이후 인덱스 계산을 보기 편하게 해주었다. size() { return this.heap.length - 1; } 힙의 사이즈, 배열의 길이를 반환하면 되는데 0번은 비워둔 상태로 만들었기에 -1을 해준다. getMin() { return this.heap[1] ? this.heap[1] : null; } 힙 안에 가장 작은 값, 인덱스 0을 비워뒀기에 인덱스 1이 가장 작은 값이다. swap(a, b) { [ this.heap[a], ..

23.07.10 Lv4 완료

만들면서 많은 많은 문제가 있었지만 대표적으로 먼저 Lv4에서 좋아요 기능을 추가하기 위해서 ERD를 구상하는 것부터 고민이 되었다. 관계 설정을 어떻게 해야할까. 이 문제에 대해서 그 안에 무슨 내용이 필요한가에 대해서 유저 정보와 게시글 정보가 필요했고 이를 관계 설정을 어떻게 하냐에 대해서 각 DB에 들어가는 데이터가 중복 되는게 있냐를 기준으로 생각을 했다. 예를 들면 유저 한 명이 여러개의 게시글에 좋아요를 누를 경우에 좋아요DB에는 각각 다른 게시물이지만 같은 유저 정보가 중복되어 들어간다. 하지만 유저DB에는 각 유저는 유저별로 하나씩을 저장하기에 1: N관계를 설정해서 같은 유저가 같은 게시물에 다시 좋아요 요청을 하는 경우 좋아요가 취소되게 만들었다. const likes = await ..

23.07.09 OSI 7계층 567계층

5계층 : 세션 계층, 응용 시스템간의 세션을 관리하며 송신자와 수신자간에 동기화 신호를 주고받음, 세션 복구도 지원 6계층 : 표현 계층, 데이터를 읽을 수 있는 형식으로 변환(인코딩, 디코딩, 암호화, 복호화 등) 7계층 : 응용 계층, 프로그램들이 해당 프로토콜을 통해 데이터를 전송 할 수 있게 해줌, HTTP가 여기에 속함 OSI 참조 모델 데이터 전송 송신 측 시스템 응용 계층에서 하위 계층으로 순차적으로 데이터 송신 수신 측 시스템 물리 계층에서 상위 계층으로 순차적으로 데이터 수신 물리 계층과 응용 계층을 제외한 나머지 계층에서는 데이터 시작 부분과 끝 부분에 헤더나 트레일러 형태로 정보추가 이 정도로 OSI는 마무리하고 다시 자료구조부터 더 이해하고 그나마 쉬운 구조는 직접 만들어봐야지

23.07.08 OSI 4계층 (TCP UDP)

4계층 : 전송 계층, 서비스를 구분하고 데이터의 전송 방식을 담당하는 계층 (TCP/UDP)이며 전송 단위인 세그먼트는 네트워크 프로토콜 스택에서 데이터를 전송하는 데 사용되는 분할 방법을 의미한다. TCP (Transmission Control Protocol) : IP 프로토콜 위에서 연결형 서비스를 지원하는 전송계층 프로토콜로, 인터넷 환경에서 기본으로 사용한다. 장점은 신뢰성을 보장한다는 것이지만 그만큼 느리다. UDP (User Datagram Protocol) : 인터넷에서 정보를 주고받을 때, 서로 주고받는 형식이 아닌 한쪽에서 일방적으로 보내는 방식의 통신 프로토콜이다. TCP와 반대로 신뢰성은 떨어지만 그 대신에 속도가 빠르다. TCP는 웹브라우징, 이메일, 온라인게임 등 전반적으로 많..

23.07.07 IP주소 MAC주소

2계층과 3계층 둘 다 데이터를 확인하는 역할이 있어서 왜 뭘 확인하는 것일까, 2계층에서 데이터를 확인하는 것은 MAC 주소이고 3계층에서는 IP주소인데 둘은 또 무슨 차이가 있을까, 패킷이랑 프레임은 뭐가 다를까 하는 의문이 생겨서 찾아봤다. MAP주소란 제품을 만들 때 받는 고유 식별자라고 한다. 각 장비마다 다른 주소를 가지고 이 주소가 사용자가 달라져도 기기 자체의 값이기에 바뀌지 않는다. 익숙하다 했는데 애플케어 서비스를 신청할 때 아이폰에 MAC주소를 입력하는 게 있었다. 그리고 애플케어는 사용자가 바껴도 유지된다는 걸 들은 적이 있었는데 이제야 이해가 된다. IP주소란 인터넷을 통해 데이터를 보내고 받을 때 사용되는 위치 주소로 MAC주소가 정적인 것과 달리 동적으로 바뀔 수도 있어 만약에..

23.07.06 OSI 7계층 1~3계층

1계층 : 물리 계층 -> 물리적인 연결과 전기 신호 변환 신호 그대로 전달만 잘하면 된다. 단순 전달 및 전기신호를 0과1로 이루어진 비트 단위 디지털 신호로 변환 2계층 : 데이터 링크 계층 -> 물리 주소 결정 주소를 확인해서 내껀지 아닌지 확인하고 그 다음 처리를 한다. 그리고 주소는 IP주소가 아니고 MAC주소 데이터를 프레임 단위로 쪼개고 전에 찾아본 연결 리스트와 유사하게 앞뒤에 순번을 달아서 다시 합칠 때 빠진 데이터가 있는지 확인한다. 재전송을 요청해서 빠진 데이터 복구를 제공하기도 하지만 에러 감지에 우선을 둔다. 3계층 : 네트워크 계층 -> 다른 네트워크와 통신하기 위한 IP주소 결정 IP 주소를 부여하고 도착지까지 최적의 경로를 찾아준다.(라우팅) 데이터를 확인하여 내꺼면 위 계층..

23.07.05 OSI 7계층 시작

OSI 7계층은 네트워크에 관해서 공부를 시작하면 금방 자주 보는 단어이다. 그리고 이와 같이 보이는데 TCP/IP인데 뭔 차이인지 알아봤다. 먼저 OSI 7계층은 네트워크가 초기에 정해진 규격이 없어서 말 그대로 제멋대로 만들어지다 보니까 난장판이 되어 정해진 규칙으로 규격을 맞춰야할 필요성이 생겼다. 그래서 국제 표준화 기구에서 만들어진게 OSI 7계층이다. 말그대로 네트워크를 역할별로 나눠서 7개의 계층으로 만든 것이다. 그런데 TCP/IP이 먼저 등장하였고 검증이 완료 되어서 실질적인 통신에 더 많이 사용되는 것은 TCP/IP프로토콜이면서 표준은 OSI 7계층으로 하는 이상한 상황이다. 그래도 OSI 7계층을 배워야하는 이유라면 TCP/IP프로토콜을 조금 더 세분화 시킨게 OSI 7계층이며 이를 ..