전체 글 208

[GIT] modified: (untracked content) 에러 해결하기 - submodule 삭제

1. 현상 git을 이용해 레포지토리 관리를 하던 중, 특정 서브 디렉토리의 수정사항을 git에서 트래킹 할 수 없는 현상이 발생했다. 해당 디렉토리를 git에 push하더라도, git에서 해당 디렉토리가 올라가지 않는다. 2. 원인 해당 디렉토리를 submodule(하위 Repository)로 인식하기 때문이다. 실수로 루트 디렉토리가 아닌 하위 디렉토리에서 git add를 하니 이와 같은 문제가 발생했다. (다른 Repository에 소속된 디렉토리를 해당 Repository로 복사해온 경우도 이와 같은 문제가 발생한다.) 3. 해결방안 3.1 submodule 삭제하기 find명령어로 하위 디렉토리 내부의 ".git" 폴더를 검색한다. $find . -name ".git" 3.2 하위 디렉토리 gi..

Git 2023.05.31

[C#] Interlocked.Increment

1. 개요 C#으로 비동기 함수를 구현할때, 변수의 값을 증가시킬 때에 동기 함수를 구현했을때와는 다르게 Interlocked.Increment메서드를 사용하게 되어 이 메서드의 역할이 궁금해서 찾아보게 되었다. 2. Interlocked.Increment 메서드란? Interlocked.Increment 메서드는 원자적(atomic)인 증가 연산을 수행하는 메서드이다. 원자적 연산은 여러 스레드가 동시에 접근하여 값을 증가시키는 경우에도 데이터의 무결성을 보장하기 위해 사용된다. 3. Interlocked.Increment 메서드를 사용하는 이유 일반적으로 변수의 값을 증가시키는 연산은 여러 스레드에서 동시에 수행될 수 있다. 이 경우 여러 스레드가 동시에 값을 읽어 증가시킨 다음, 각각의 스레드가 업..

Language/C# 2023.05.29

AJAX와 SPA, 차이점

1. 개요 AJAX (Asynchronous JavaScript and XML) 또는 SPA(Single Page Application) 프레임워크를 사용할지 여부는 다양한 요소와 웹사이트 개발 프로젝트의 구체적인 요구사항에 따라 결정된다. 오늘 포스팅에서는 이 두 가지 옵션을 살펴보려고 한다. 2. AJAX AJAX는 전체 페이지를 다시 로드하지 않고 웹 페이지의 일부분을 업데이트할 수 있는 기술이다. 브라우저와 서버 간 비동기 통신을 가능하게 하여 백그라운드에서 데이터를 가져와 콘텐츠를 동적으로 업데이트할 수 있다. AJAX는 전체 페이지를 새로고침하지 않고도 자주 업데이트해야 하는 웹사이트의 특정 기능이나 섹션에 유용하다. 이는 전통적인 다중 페이지 웹사이트에서 일반적으로 사용된다. AJAX의 장점..

FrontEnd 2023.05.22

[Database] ACID(원자성, 일관성, 고립성, 지속성)

1. 개요 데이터베이스에서 트랜잭션의 특성을 나타내는 네가지 기본 원칙을 나타내는 약어가 있는데, 바로 ACID이다. 이에 대해서 알아보자. 2. ACID란? ACID는 Atomicity(원자성), Constistency(일관성), Isolation(고립성), Durability(지속성)을 나타내는 약어이다. 각각의 의미에 대해 나열해보고자 한다. 1. 원자성(Atomicity): 트랜잭션은 "원자적"이어야 한다. 이는 트랜잭션이 작업의 모든 단계를 완전히 수행하거나 아무 작업도 수행하지 않은 상태로 유지되어야 함을 의미한다. 트랜잭션 내의 모든 작업은 전부 성공적으로 완료되거나, 어느 하나라도 실패할 경우 모든 작업이 롤백되어 이전 상태로 복원된다. 2. 일관성(Consistency): 트랜잭션은 데이..

DataBase 2023.05.21

[MSSQL] MSSQL이란?

1. MSSQL이란? MSSQL(MS-SQL)은 미국 마이크로소프트(Microsoft)에서 개발한 관계형 데이터베이스 관리 시스템(RDBMS)이다. 마이크로소프트 SQL 서버(Microsoft SQL Server)라고도 한다. 윈도우(Windows) 기반의 IIS서버에서 주로 사용한다. 2. MSSQL의 특징 MSSQL은 대규모 데이터베이스 애플리케이션을 지원하는 기능적인 데이터 관리 솔루션이다. 이를 통해 사용자는 데이터를 구성, 저장, 관리하고, 데이터베이스에 대한 효율적인 액세스 및 조작이 가능하다. MSSQL은 다양한 기능을 제공하는데, ACID(원자성, 일관성, 고립성, 지속성) 트랜잭션 지원, 복제, 보안 및 접근 제어, 데이터 백업 및 복구, 데이터베이스 관리 등이 포함된다. 또한 고급 쿼리..

DataBase/MSSQL 2023.05.21

UTC(협정 세계시)에 대해 & 지역마다 다른 시간값의 대처

1. 개요 시간 관련된 개발을 하다보면 로컬과 서버의 시간이 맞지 않아서 문제가 발생하는 경우가 있다. 그러면 자연스레 UTC시간이라는것을 접하게 되는데, 이게 무엇인지 알아보자. 2. UTC(협정 세계시)란? UTC(Universal Time Coordinated) 는 국제적인 표준 시간의 기준으로 쓰이는 시각을 말한다. 1972년 1월 1일부터 시행된 국제 표준시로, 국제 사회가 사용하는 과학적 시간의 표준이다. 기존에 사용하던 평균태양시 기준의 그리니치 표준시(GMT)를 대체하여 사용하기 시작한 표준시이다. UTC에서 0시, 즉 기준점에 달하는 도시는 런던(영국) 이며, 이를 기준으로 +, -로 시간을 계산한다. 우리나라(대한민국)은 런던을 기준으로 +9시이다. 3. 지역마다 다른 시간값의 대처 위..

[Linux] vi로 파일 내용 전체 복사 후 붙여넣기

오늘은 vi로 파일 내용을 전체복사 후 붙여넣는 방법을 포스팅하려고 한다. 1. vi로 파일 내용 전체 복사 후 붙여넣기 vi로 파일을 연 후, 아래 명령어로 첫줄로 이동한다. gg // 첫째줄로 이동 아래 명령어로 비주얼 라인 모드로 전환해서 첫째줄을 모두 선택한다 V // 비주얼 라인 모드 그 후 아래 명령어로 맨 아랫줄까지 선택한다 G // 맨 아랫줄로 이동 그런다음, 선택된 내용을 복사한다. y // 복사(yanked -> 확 잡아당기다라는 의미) 복사된 내용은 vi에디터 사용시 아래 명령어로 붙여넣을 수 있다. p // 붙여넣기(paste) 2. putty 프로그램 사용시 파일 내용 복사 및 외부 프로그램으로 붙여넣기 putty프로그램을 사용하여 원격 서버에 접속했을 시, 해당 서버내에 있는 파..

Server/Linux 2023.04.15

[Linux] free 명령어에 대해

1. 개요 free 명령어는 커널에서 사용되는 버퍼와 캐시뿐만 아니라 시스템에서 사용 가능한 물리적 메모리와 스왑 메모리의 총량을 표시한다. free 명령어는 /proc/meminfo에서 메모리 정보를 가져와 분석하여 수집된다. 간단히 말해, 리눅스 시스템에서 전체적인 메모리에 대한 현황을 보여주는 명령어이다. 그럼 free명령어로 볼 수 있는 메모리 정보와 이와 관련된 meminfo의 값들을 알아보자. 2. 사용법 [사용법] $ free [옵션] [옵션] -b, -k, -m, -g : 바이트, 킬로바이트, 메가바이트, 기가바이트 단위로 출력 --tera, --peta : 테라바이트, 페타바이트 단위로 출력 -h, --human : 자동으로 단위를 조정해서 출력 -w, --wide : 와이드 모드로 실행..

Server/Linux 2023.03.25

쿠키(Cookie), 세션(Session), 토큰(Token [JWT])에 대해

개요 웹 서비스를 운영하다보면 아래와 같이 자주 듣는 말들이 있다. "인증을 쿠키 방식으로 진행할게요" "세션 끊긴거 아닌가요?" "토큰이 없어서 인증이 안되는 것 같아요" 바로 쿠키, 세션, 토큰이라는 단어들이다. HTTP통신에서 이들이 등장한 이유와, 각각이 무엇을 의미하는지 한번 알아보고자 한다. 1. 쿠키, 세션, 토큰의 등장 이유 HTTP 통신은 요청(Request) -> 응답(Response) 이 종료되면 stateless(상태가 유지되지 않음)한 특징 때문에 연결을 끊는 처리 방식이다. 1. Connectionless 프로토콜(비연결 지향) 클라이언트가 서버에 요청을 했을 때, 요청에 맞는 응답을 보낸 후 연결을 끊는 처리 방식이다. 2. Stateless 프로토콜(상태정보 유지 안함) 클라..

Network 2023.02.10

[Ubuntu] 부팅시 Node.js 프로젝트가 자동 실행되도록 서비스 등록

개요 AWS EC2(Ubuntu) 인스턴스를 만들어 REST API 서버를 구축하여 사용하던 중, 가끔 서버에 렉이 발생해서 REST API가 응답하지 않을때가 있었다. 그래서 가끔 AWS 콘솔에서 인스턴스를 재부팅시켜줄때가 있었으나, 부팅 후 직접 진입해서 Node.js는 수동으로 실행시켜주는 작업을 계속 반복할수 없었으니.. 서비스로 등록하여 부팅시 자동으로 뜨도록 설정해놓고자 하였다. 구축 환경 Ubuntu 18.04 Node.js 14 1. 서비스 파일 작성 서비스를 등록하기에 앞서, node.js 프로젝트 폴더에 node.js 프로그램을 실행할 수 있도록 아래와 같이 간단한 쉘 스크립트를 만들어 주었다. [start.sh] node --loader ts-node/esm ./index.ts 그런 ..

Server/Linux 2023.02.09
반응형