Web 57

디버거

디버거란디버거는 프로그램의 실행 과정을 추적하고 오류를 찾아내는 도구이다. 프로그램이 실행되는 동안 변수의 값, 메모리 상태, 코드 실행 흐름 등을 모니터링하고 제어할 수 있다. 이를 통해 프로그램의 논리적 오류나 예외 상황을 발견하고 해결할 수 있다.  주요 기능중단점(Breakpoint) 설정 : 특정 코드 라인에서 프로그램 실행을 일시 중지할 수 있다.단계 실행(Step) : 한 줄씩 코드를 실행하며 상태를 확인할 수 있다.변수 감시 : 변수의 값과 메모리 상태를 실시간으로 모니터링 할 수 있다.콜 스택 추적 : 함수 호출 스택을 확인하여 실행 흐름을 파악할 수 있다.

Web 2024.06.10

우분투란 ?

최근 라즈베리파이를 통한 홈서버 구축이라는 유튜브 영상을 보고 관심을 갖게 되었다. 그 전에 우분투라는 단어를 자주 접하게 되었는데 그에 대해 정리해보고자 한다.  우분투리눅스 배포판 중 하나, 데비안 GNU/리눅스를 기반으로 한 리눅스 운영체제. 리눅스 커널을 사용하며 오픈소스 소프트웨어이다. 사용자 편의성에 초점을 맞춘 배포판으로, 그놈 데스크톱 환경을 사용하여 윈도우 사용자들도 쉽게 사용할 수 있다. 6개월마다 새로운 버전이 출시되며, 데스크톱, 서버, 클라우드, IoT등 다양한 버전이 있다. 케노니컬이라는 기업에서 개발 및 배포를 주도한다. 오픈소스 철학을 지향하여 소프트웨어의 자유로운 사용, 수정, 배포를 권장하고 협력과 공유의 가치를 중시한다.

Web 2024.06.09

SQL injection

SQL injection은 웹 애플리케이션의 보안 취약점을 악용하여 악의적인 SQL 쿼리를 데이터베이스에 전송하는 공격 기법이다. 이를 통해 공격자는 데이터베이스의 중요 정보를 탈취하거나 조작할 수 있다.SQL Injection의 원리공격자는 웹 애플리케이션의 사용자 입력 부분에 악의적인 SQL 쿼리를 삽입한다. 이 쿼리는 개발자가 의도하지 않은 방식으로 데이터베이스에 전달되어 실행된다. 예를 들어 로그인 페이지에서 다음과 같은 쿼리가 사용된다면, SELECT * FROM users WHERE username='$username' AND password='$password'공격자가 username에 'OR 1=1'을 입력하면 쿼리는 다음과 같이 변형된다. SELECT * FROM users WHERE u..

Web 2024.06.08

Git Rebase, Merge

rebase와 merge 는 모두 브랜치를 통합하는 방법이지만, 접근 방식과 결과물에 차이가 있다.Rebase 현재 브랜치의 베이스를 변경하여 다른 브랜치와 통합한다. 현재 브랜치의 커밋들을 대상 브랜치 뒤에 이동시켜 선형의 커밋 히스토리를 만든다. 커밋 히스토리가 깔끔해지지만, 기존 커밋들이 새로운 커밋으로 변경되어 과거 기록이 재작성된다. Merge 두 브랜치의 최신 커밋들을 기준으로 새로운 머지 커밋을 생성하여 통합한다. 두 브랜치의 커밋 히스토리가 그대로 유지되어 과거 기록을 추적하기 쉬워진다. 머지 커밋이 생기면서 커밋 히스토리가 복잡해질 수 있다. 리베이스는 깔끔한 커밋 히스토리를 원할 때 유용하지만, 공유 브랜치에서는 주의해야 한다. 머지는 안전하고 추적이 쉬운 대신 히스토리가 복잡해질 수 ..

Web 2024.06.05

CDN

CDN(Content Delifvery Network)은 웹 콘텐츠를 사용자와 가까운 곳에서 전송함으로써전송 속도를 높이고 웹사이트 성능을 개선하는 지리적으로 분산된 서버 네트워크이다.  CDN의 작동 원리 CDN은 전 세계 각지에 캐시 서버(엣지 서버)를 배치하여 작동한다. 사용자가 웹사이트에 접속하면 CDN은 사용자와 가장 가까운 캐시 서버에서 웹 콘텐츠를 제공한다. 이렇게 하면 원본 서버에서 직접 콘텐츠를 전송하는 것보다 네트워크 지연 시간이 줄어들어 웹 페이지 로드 시간이 단축되게 된다.  CDN의 주요 기능 1. 콘텐츠 캐싱 : 자주 요청되는 정적 컨텐츠( 이미지, 동영상, CSS 등)를 엣지 서버에 캐싱하여 원본 서버의 부하를 줄인다. 2. 부하 분산 : 트래픽을 여러 엣지 서버로 분산시켜 원..

Web 2024.06.04

스프레드 연산자

스프레드 연산자는 ES6에 도입된 자바스크립트 문법으로, 반복 가능한 객체의 요소를 개별적으로 펼쳐서 사용할 수 있게 한다.  배열 복사 const arr = [1, 2, 3];const copy = [...arr]; // [1, 2, 3]배열 병합 const arr1 = [1, 2];const arr2 = [3, 4];const combined = [...arr1, ...arr2]; // [1, 2, 3, 4]배열 const arr = [1, 2, 3];const beginning = [0, ...arr]; // [0, 1, 2, 3]const end = [...arr, 4]; // [1, 2, 3, 4] 객체 복사const obj = { a: 1, b: 2 };const copy = { ...obj ..

Web 2024.06.03

AWS

AWS(Amazon Web Services)는 아마존에서 제공하는 클라우드 컴퓨팅 플랫폼이다. 다양한 원격 컴퓨팅 서비스를 제공하여 기업이 애플리케이션과 서비스를 쉽게 구축, 배포, 운영할 수 있도록 서비스를 제공한다. 특징 컴퓨팅 성능, 스토리지, 데이터베이스, 분성 등 다양한 서비스 제공 전 세계 25개 지역의 데이터 센터에서 운영되며 높은 가용성과 내결함성 제공필요한 만큼만 리소스를 사용하고 비용을 지불하는 종량제 과금 모델 확장성과 탄력성이 뛰어나 트래픽 변화에 유연하게 대응 가능 보안, 안정성, 모니터링 및 관리 도구 제공 주요 서비스 EC2 : 가상 컴퓨팅 환경 제공 S3 : 객체 기반 스토리지 서비스 RDS : 관계형 데이터베이스 서비스 Lambda : 서버리스 컴퓨팅 서비스 CloudFro..

Web 2024.05.31

인덱스

데이터베이스 인덱스는 데이터베이스 테이블의 검색 성능을 향상시키기 위한 자료구조이다. 특정 컬럼에 인덱스를 생성하면 해당 컬럼의 데이터들이 정렬되어 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다.장점테이블의 조회 속도를 향상시킨다. 인덱스를 통해 데이터의 물리적 주소를 먼저 확인하여 불필요한 테이블 풀스캔을 방지할 수 있다.부등호() 연산을 포함한 조건 검색 쿼리의 효율성이 높아진다. 정렬된 인덱스를 활용하여 범위 검색이 가능해진다.정렬 작업의 부하를 줄일 수 있다. 인덱스에 미리 정렬된 데이터가 저장되어 있어 ORDER BY 절 사용 시 별도 정렬이 필요 없다.전반적인 시스템 부하를 줄일 수 있다.단점인덱스 생성 및 관리를 위한 추가 저장 공간과 쓰기 작업이 필요하다.데이터 변경(INSER..

Web 2024.05.30

데이터 모델링

데이터 모델링이란 ?데이터 모델링은 조직의 정보 수집과 관리 시스템을 정의하는 시각적 표현 혹은 규격을 생성하는 단계이다. 이 때 만들어진 데이터 모델은 한 프로젝트의 다양한 이해관계자들이 조직의 데이터에 대한 통일된 개념을 가질 수 있도록 돕는다. 데이터 모델링은 해당 비즈니스가 수집하는 데이터, 데이터 간의 연간 관계, 데이터를 저장하고 분석할 때 사용되는 방식을 설명한다. 데이터 모델링이 중요한 이유 ? 오늘날 조직은 다양한 소스에서 많은 양의 데이터를 수집한다. 여기서 수익성 있는 비즈니스 결정을 위해서는도움이 되는 실행 가능한 인사이트를 얻기 위해서 데이터를 분석해야 한다. 정확한 데이터 분석을 위해서 효율적인 데이터를 수집, 저장, 처리하는 과정이 필요하다. 여러 데이터 베이스 관련한 기술과 ..

Web 2024.05.29

Prisma

Prisma란? Prisma는 Node.js, TypeScript, Rust, Go 등 다양한 언어와 프레임워크에서 사용할 수 있는 ORM(Object-Relational Mapping) 도구로, 데이터베이스와 애플리케이션 간의 상호작용을 단순화시켜 개발자가 SQL 쿼리를 직접 작성하지 않더라도 데이터베이스를 쉽게 다룰 수 있도록하여 데이터베이스의 접근성과 생산성을 높여준다.특히 Prisma는 ORM 중에서도 현대적이고 선언적인 구문을 사용하기 때문에 SQL 쿼리 복잡성을 줄이고, 안전한 쿼리 작성을 보장한다.  Prisma의 주요 구성 요소Prisma Client: Node.js 및 TypeScript용 자동 생성된 타입 안전 쿼리 빌더이다. 데이터베이스에 대한 CRUD 작업을 수행할 수 있습니다.Pr..

Web 2024.05.28