본문 바로가기

-10

파이썬(Python) 개발환경 셋팅하기 📝파이썬(Python) 개발환경 셋팅하기 처음 개발을 시작할때 파이썬 개발환경을 셋팅했었는데 오래 되었으니 기억을 살려볼겸 정리해본다 우선 Anaconda를 먼저 설치해준다(https://www.anaconda.com/products/individual) ※ Anaconda를 설치하는 이유 Anaconda를 설치하면 파이썬을 바로 사용할 수 있을 뿐만 아니라, NumPy, Pandas, Matplotlib 등과 같은 데이터 분석에 많이 사용되는 패키지들도 함께 설치되어 편리하게 사용할 수 있다 또한, Anaconda는 가상환경을 지원하여 여러 개의 파이썬 환경을 구축하고 각각의 환경에서 필요한 패키지를 설치하여 서로간의 충돌 없이 사용할 수 있다 아나콘다 프롬프트 실행한 후 파이썬 가상환경 만들어준다 (.. 2023. 4. 10.
CI(Continuous Integration)/CD(Continuous Delivery)? 📝CI/CD란? CI/CD는 지속적 통합 (Continuous Integration) 및 지속적 배포 (Continuous Delivery 또는 Continuous Deployment)를 의미합니다. 이것은 소프트웨어 개발 프로세스의 일부로, 개발자들이 코드를 빠르게, 안정적으로, 자동화된 방식으로 릴리스할 수 있도록 하는 방법 ✏️CI는 코드를 더 자주 통합하고 테스트하는 것을 의미 개발자들은 자신들이 작성한 코드를 지속적으로 버전 관리 시스템에 커밋하며, 이 코드 변경 사항은 자동으로 빌드 및 테스트를 실행하여 문제점을 신속하게 파악할 수 있도록 해준다 ✏️CD는 빌드와 테스트를 통과한 코드를 배포하는 과정 Continuous Delivery는 수동 승인 절차를 거친 후 릴리스할 수 있는 완전한 배포.. 2023. 4. 10.
Git/Github를 사용한 협업에서 자주 사용하는 기능 정리 📝Git/Github를 사용한 협업에서 자주 사용하는 기능 정리 ✏️Pull Request(풀 리퀘스트) 코드 변경 사항을 리뷰어에게 보내고 코드를 병합하는 작업을 수행하는데 사용 ✏️Branch(브랜치) 동시에 여러 작업을 수행하기 위해 메인 코드 베이스에서 새로운 가지를 생성하는데 사용 각 가지는 다른 작업자들에게 독립적인 작업 환경을 제공한다 ✏️Merge(머지) 여러 개의 브랜치에서 작업한 내용을 병합하여 하나의 코드 베이스로 통합하는 작업을 수행하는데 사용 ✏️Issue(이슈) 버그 리포트, 기능 요청, 질문 등과 같은 작업을 추적하고 관리하는데 사용 ✏️Collaborator(콜라보레이터) 코드를 공유하고 관리하는데 함께 참여하는 사람들을 지정하는데 사용 ✏️Gitignore(깃이그노어) Gi.. 2023. 4. 10.
RESTful API? 📝RESTful API(레스트풀 에이피아이)? RESTful API는 Representational State Transfer(표현 상태 전이)라는 아키텍처 스타일을 따르는 API로, 네트워크 상에서 데이터를 주고받기 위한 표준적인 방법이다 RESTful API는 클라이언트와 서버 간의 통신을 위해 HTTP 프로토콜을 사용 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 리소스를 요청하고, JSON, XML 등의 형식으로 응답을 받는다 RESTful API의 가장 큰 특징은 URI(Uniform Resource Identifier)를 통해 자원을 표현하고, HTTP 메서드를 통해 해당 자원에 대한 행위를 나타낸다는 것, 이를 통해 자원에 대한 식별과 관리가 용이하며, URI가 독.. 2023. 4. 10.
AWS Lambda Layer를 사용하는 이유 📝AWS Lambda Layer를 사용하는 이유 AWS Lambda Layer는 AWS Lambda 함수에서 공통 코드와 라이브러리를 관리하고 재사용할 수 있도록 해주는 기능 Layer를 사용하면 여러 Lambda 함수에서 동일한 코드와 라이브러리를 사용할 수 있으므로 개발자는 함수 개발에 더 많은 시간을 할애할 수 있다 ✏️ 1. 코드 재사용성 향상 Layer를 사용하면 여러 Lambda 함수에서 동일한 코드와 라이브러리를 사용할 수 있으므로 코드 재사용성이 향상된다 즉, 같은 코드를 여러 Lambda 함수에서 반복해서 작성하지 않아도 되므로 개발 시간과 노력을 절약할 수 있다 ✏️ 2. 용량 및 배포 시간 감소 Lambda 함수가 많은 코드와 라이브러리를 포함하면 용량이 커지고 배포 시간이 오래 걸릴.. 2023. 4. 7.
JWT 토큰(Json Web Token)이란? 📝JWT 토큰(Json Web Token)이란? JWT는 JSON Web Token의 약자로 웹 표준 JSON 형태의 데이터를 사용하여 클라이언트와 서버 간에 정보를 안전하게 전송할 수 있도록 하는 인증 방식 중 하나이다 JWT는 사용자 인증에 매우 유용하다 사용자가 로그인을 하면 서버는 JWT 토큰을 발급하고 이후 사용자가 서버에 요청을 보낼 때마다 JWT 토큰을 함께 전송하며, 서버는 해당 JWT 토큰의 유효성을 검증하여 사용자를 인증한다 이 방식은 세션을 사용하는 방식보다 더 간편하며 서버 부하를 줄일 수 있다 또한 JWT는 토큰 자체에 사용자 정보를 저장하기 때문에 서버에서 사용자 정보를 저장하고 관리할 필요가 없다 이를 통해 서버 부하를 줄이고, 사용자 데이터 보호에도 효과적 ✏️✏️✏️✏️✏️.. 2023. 4. 7.
DB에서 인덱스를 사용하는 이유? 📝DB에서 인덱스를 사용하는 이유? 1. 빠른 검색 속도 → 인덱스를 사용하면 DB가 더 빠르게 데이터를 찾아올 수 있습니다 인덱스는 특정 컬럼의 값을 기준으로 정렬되어 있기 때문에 검색 시에 해당 컬럼을 기준으로 검색을 할 수 있습니다 이렇게 되면 데이터를 찾기 위해 전체 테이블을 스캔하지 않고도 검색 결과를 빠르게 찾아낼 수 있습니다 2. 검색 쿼리 최적화 → 인덱스를 사용하면 검색 쿼리를 최적화할 수 있습니다 인덱스를 설정하면 DB가 쿼리 실행 계획을 최적화하고 실행 속도를 높일 수 있습니다 또한 인덱스를 사용하면 조인 등의 연산에서도 빠른 속도를 보장할 수 있습니다 3. 데이터 일관성 유지 → 인덱스를 사용하면 DB에서 데이터 일관성을 유지할 수 있습니다 인덱스는 데이터를 빠르게 찾아오는 용도로 .. 2023. 4. 5.
RDB와 NoSQL의 차이점 📝RDB(Relational Database)와 NoSQL(Not only SQL)의 차이점 ✏️RDB? → 관계형 데이터베이스의 약자로, 데이터를 저장하고 관리하기 위한 데이터베이스 데이터를 테이블 형태로 저장하고, 각 테이블은 관계를 가지며, 관계는 외래키로 정의 스키마 기반으로 데이터를 저장하기 때문에 데이터의 구조가 변화될 경우 스키마 변경이 필요 ✏️NoSQL? → Not Only SQL이라는 뜻으로, 관계형 데이터베이스(RDB)가 아닌 다른 형태의 데이터베이스 다양한 형식의 데이터를 저장할 수 있다 (문서, 그래프, 키-값 등) 관계형 데이터베이스와는 다르게 스키마가 없거나 유연한 스키마를 가진다 수평적 확장(Scaling out)이 가능 데이터의 특성에 따라 RDB와 NoSQL 중 적합한 데.. 2023. 4. 5.
프로세스(Process)와 스레드(Thread)의 차이점 📝프로세스(Process)와 스레드(Thread)의 차이점 프로세스(Process)는 실행 중인 프로그램을 의미한다 메모리 상에서 독립적으로 할당되며, 각각의 프로세스는 자신만의 고유한 주소 공간(메모리)을 갖고 있다 즉, 다른 프로세스에 영향을 받지 않고 독립적으로 실행될 수 있는 단위 스레드(Thread)는 프로세스 내부에서 실행되는 작업의 단위이다 한 프로세스 내부에는 여러 개의 스레드가 존재할 수 있으며, 이 스레드들은 동시에 실행될 수 있다 스레드는 프로세스 내부의 자원을 공유하므로, 다른 스레드에 영향을 받을 수 있다 프로세스와 스레드는 각각 독립적인 실행 단위이다 프로세스는 스스로의 메모리 공간을 가지며, 자신만의 작업을 처리하고 스레드는 같은 프로세스 내에서 다른 스레드와 공유된 자원(메모.. 2023. 4. 5.
HTTP Method와 상태코드 📝HTTP Method와 상태코드 ✏️HTTP Method의 주요 메소드는 GET, POST, PUT, DELETE GET : 리소스의 조회를 요청할때 사용 POST : 리소스를 생성하거나 서버의 상태를 변경하는 데이터를 전송할때 사용 PUT : 리소스를 생성하거나 업데이트할때 사용 DELETE : 리소스를 삭제할때 사용 ※ GET과 POST의 주요 차이점 : GET 요청은 캐시가 되나, POST는 캐시 되지 않는다 → GET 요청은 캐싱을 통해 요청 횟수를 줄이고, 이전에 요청한 내용을 다시 볼 수 있게 되지만 POST 요청은 보안적인 이유와 동적인 응답 때문에 캐싱하지 않는다 ✏️HTTP 많이 사용되는 주요 상태 코드 200 OK: 요청이 성공적으로 처리되었음을 나타냄 201 Created: 요청이 .. 2023. 4. 5.