전체 글 107

[2024.05.02] Today I Learned(Serializer, AWS CloudFront, commit message)

오늘 배운 것1. Django REST Framework(이하 DRF) Serializer 옵션값2. commit message의 중요성3. AWS CloudFront 1. DRF 옵션값오늘은 나에게 긴급 이슈 요청이 들어와서 서둘러 일을 처리해야 했다. 전에 작성했던 코드를 수정했어야 했는데 오랜만에 보다 보니 기억이 잘 나지 않았고, 추가로 아직 까지도 Django Restfamework가 익숙하지 않아서 수정하는데 헤매었다 그러던 중 선임님이 이슈를 같이 해결해 주셨고...! 결국 무임승차를 하게 되었다.... 크으 나는 제한된 시간 안에 코드를 짤 때는 빨리해야 된다는 압박감에 머리솟이 하에 지는 것 만 같은데 선임 분이 해주셔서(?) 무사히 끝낼 수 있었다. (정말 멋져....) 결론적으로 내가..

TIL 2024.05.02

[2024.04.01] 성장일기 Today I Learned(TIL)

서론 오늘은 회의시간에서 많은걸 배운것 같다. 현재 우리 회사는 서비스 범위 확장으로 보다 만은 데이터들을 저장하고 관리해줘야 하는 과제가 주어졌다. 그래서 대규모 데이터를 효율적으로 사용하고 확장에 용이하게 변경하기 위하여 데이터 분산 방법인 샤딩을 도입할 예정이다. 그리고 현재 MySql과 Postgres를 동시에 사용중인데 공간정보데이터를 사용하는 Postgres를 더 자주 사용하게 될것이라 생각이들어서 기존 MySql을 사용중이던 DB들을 Postgres로 전환하고 Postgres만 사용하기로 결정했다.(개발 용이성과 Postgres에서 지원하는 Postgis 등의 기술들을 활용하기 위함) 또한 우리는 데이터를 자동으로 수집 및 전송하는 여러 q를 개발했고 앞으로도 추가 될것이기 때문에 기존 dj..

카테고리 없음 2024.04.02

[2024.03.25] 오늘의 TIL

TIL의 첫 시작 우연히 유튜브를 보다 인프콘에서 연사 하신 지소라 님의 강의를 듣고 나도 TIL을 기록해 보기로 결심했다. 하루 있었던 이슈나, 경험이나 아니면 사소한 이야기든 기록을 할 예정이고, 꼭 하루 마무리를 TIL 작성으로 끝낼 수 있기를 바란다. 우선 인상 깊게본 지소라 님 인프콘 영상 링크이다. https://www.youtube.com/watch?v=ifGUz43GjdQ 보면서 정말 대단하다고 생각했다... 나는 본체 소심하고 적극적이지 않아서 자신감 있게 발표하는 모습이 정말 멋있게 느껴졌고 유명한 채널인 개발바닥에서 진행한 이력서 피드백 콘텐츠에서 지적받았었던 내용들까지 공개할 수 있는 용기가 배워야 한다고 생각했다. 그런 모습에 반해서 찾아보니 지소라 님도 유튜브를 하고 계시고 블로..

TIL 2024.03.26

[JavaScript] 자바스크립트의 원시값과 복합객체 이해하기

자바스크립트는 다양한 데이터 타입을 제공하여, 개발자가 효율적으로 프로그래밍할 수 있는 환경을 만들어 줍니다. 이 포스트에서는 자바스크립트의 두 주요 데이터 타입인 원시값과 복합객체에 대해 깊이 있게 탐구해보겠습니다. 이해의 편의를 위해 정의에서 시작하여, 저장 및 복사 방법, 그리고 이들의 비교 방식에 대해 자세히 설명하겠습니다. 원시값(Primitive Values) 원시값은 변경 불가능한 가장 기본적인 데이터 타입을 말합니다. 자바스크립트에서는 null, undefined, 문자열(string), 숫자(number), 불리언(boolean), Symbol, BigInt를 원시값으로 분류합니다. 이들의 특징은 다음과 같습니다: 저장 및 복사: 원시값은 변수에 할당될 때 메모리에 그 값 자체가 저장됩니..

[JavaScrpit] Iterator pattern

1. Iterator pattern(이터레이터 패턴) ES6에서 도입된 이터레이션 프로토콜(iteration protocol)은 데이터 컬렉션을 순회하기 위한 프로토콜(미리 약속된 규칙)이다. 이터레이션 프로토콜을 준수한 객체는 for…of 문으로 순회할 수 있고 Spread 문법의 피연산자가 될 수 있다. 이터레이션 프로토콜에는 이터러블 프로토콜(iterable protocol)과 이터레이터 프로토콜(iterator protocol)이 있다. 이터레이터 패턴은 이터레이터를 사용하여 컬렉션의 요소들에 접근하는 디자인 패턴이다. 여러 가지 자료형의 구조와는 상관없이 이터레이터라는 하나의 인터페이스로 순회가 가능하다는 장점이 있다. const mp = new Map(); mp.set('b', 2) mp.se..

Python 리스트(list)와 튜플(tuple) 개념 정리

파이썬은 데이터를 저장하고 처리하는 데 필요한 다양한 내장 데이터 타입을 제공합니다. 그 중에서도 리스트(List)와 튜플(Tuple)은 자주 사용되는 타입으로, 데이터의 순서와 집합을 다루는 데 매우 유용합니다. 이 두 타입의 가장 큰 차이점은 '변경 가능성(mutable vs immutable)'입니다. 1. 리스트(List) - 유연하고 동적인 컨테이너 - 리스트는 '변경 가능한(mutable)' 데이터 타입으로, 순서가 있는 요소의 집합입니다. 리스트는 대괄호 [] 또는 list() 함수를 통해 생성할 수 있으며, 다양한 데이터 타입을 포함할 수 있습니다. # 빈 리스트 생성 list1 = [] # 숫자로 구성된 리스트 list2 = [1, 2, 3, 4, 5] # 중첩 리스트 list3 = [1..

웹페이지 렌더링 방식(SSR vs CSR 비교)

1. 웹의 기본 원리와 DOM 트리 DOM 트리의 중요성: 웹 페이지의 요소들이 객체 형태로 구성되어 있으며, JavaScript를 통해 이 요소들을 조작할 수 있습니다. 이를 통해 동적인 웹 페이지를 구현합니다. CSSOM의 역할: CSSOM은 CSS 규칙들을 객체 형태로 변환하여, JavaScript를 통한 스타일 조작을 가능하게 합니다. 이는 DOM과 병합되어 최종적인 렌더 트리를 형성하며, 이를 바탕으로 페이지가 화면에 표시됩니다. 2. 서버 사이드 렌더링(SSR) vs 클라이언트 사이드 렌더링(CSR) SSR의 장점과 단점: 장점: SEO 최적화, 빠른 첫 페이지 로딩, 초기 렌더링에 필요한 리소스가 적음. 단점: 각 페이지 요청마다 서버 부하 증가, 사용자 인터랙션에 대한 반응 속도가 느릴 수..

CS 지식 2024.01.25

(JavaScript) eval()를 사용하면 안되는 이유

1. eval()? eval()는 문자열 수식 또는 문자열로 된 코드를 Javascript로 실행하는 메서드이다. 따라서 매개변수를 string 형식으로 받는다. 자바스크립트 표현식, 명령문, 또는 연속되는 다수의 명령문을 나타내는 문자열. 표현식은 이미 존재하는 객체의 변수나 속성을 포함할 수 있다. 매개변수로 받은 코드를 평가하여 얻은 값을 반환하고, 값이 없다면 undefined를 반환한다. 예시) var x = 10; var y = 20; var result = eval("x * y"); // 결과: 200 console.log(result); var jsonStr = '{"name": "John", "age": 30}'; var obj = eval("(" + jsonStr + ")"); cons..

[운영체제] 운영체제 개념 정리

1. 운영체제란? 운영체제(Operating System) 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 협의의 운영체제(커널) - 운영체제의 핵심 부분으로 메모리에 상주하는 부분 광의의 운영체제 - 커널뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념 2. 운영체제의 목적 1) 하드웨어, 자원을 효율적으로 관리하기 위함 a.프로세서, 기억장치, 입출력 장치 등의 효율적 관리 - 사용자간의 형평성 있는 자원분배 - 주어진 자원으로 최대한의 성능을 내도록 함 b. 사용자 및 운영체제 자신의 보호 c. 프로세스, 파일, 메시지 등을 관리 2) 사용자에게 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 a. 운영체제는 동시 사용자/프로그램들이 ..

CS 지식 2023.08.17

[aws] React, Node.js 프로젝트 aws EC2에 배포하기 (Nginx 사용)

React, Node.js, MongoDB로 만든 프로젝트를 포트폴리오용으로 제출하고 싶어서 베포를 해보았다. 배포하는 방법에는 여러 가지가 있지만 나는 포트폴리오용이었기 때문에 무료로 사용할 수 있으면서 대중적으로 가장 많이 사용하는 aws에 배포를 해보기로 하였다. 1. aws 회원가입을 하고 EC2 인스턴스를 생성한다. EC2는 aws에서 제공하는 클라우드 컴퓨팅 서비스이다. 즉, 내가 만든 프로젝트를 항상 가동하고있는 클라우드 컴퓨터에서 실행하고 사람들이 볼 수 있도록 해준다. EC2의 장점은 인스턴스를 생성하여 운영체제, 소프트웨어 등을 자유롭게 선택할 수 있고, 메모리, CPU, 스토리지, 부팅 파티션 크기 등을 선택할 수 있다는 점이다. 1) 서울의 가상컴퓨팅을 사용하기 위하여 헤더 부분의 ..

프로그래밍/AWS 2023.04.20