본문 바로가기

전체 글

(188)
CI / CD 개요팀 프로젝트를 하면서 애플리케이션 자동 배포 및 여러 이점으로 CI/CD를 도입해 사용했고 편리했던 경험이 있었다.CI/CD를 직접 설정해보지 않았기 때문에 CI/CD에 대해 공부하고 프로젝트에 사용했던 설정을 분석하여 다른 프로젝트에서 적용할 수 있도록 연습해 볼 생각이다. CI/CD 란? CI/CD는 약어로, 몇 가지의 다른 의미를 가지고 있다. CI/CD의 "CI"는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다.CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문..
기술면접 준비 4주차 정리 기술면접 문제 - 답변 형식으로 정리 Primary Key, Foreign Key에 대해 설명해주세요. Primary Key (기본 키)Primary Key는 데이터베이스의 각 행(레코드)을 유일하게 식별하는 데 사용되는 컬럼(필드) 또는 컬럼의 집합입니다. 기본 키의 주요 특징은 다음과 같습니다:유일성: 기본 키로 설정된 값은 데이터베이스 테이블 내에서 반드시 고유해야 합니다. 즉, 동일한 값을 두 번 이상 사용할 수 없습니다.무결성: 기본 키는 NULL 값을 허용하지 않습니다. 모든 행에는 기본 키 컬럼에 유효한 값이 있어야 합니다.불변성: 일단 설정되면, 기본 키의 값은 변경되어서는 안 됩니다. 기본 키 값의 변경은 데이터의 일관성을 해칠 수 있습니다.기본 키는 데이터베이스의 레퍼런스 인티그리티를 ..
정렬 알고리즘 정렬 알고리즘(Sort Algorithm)원소들을 일정한 순서대로 열거하는 알고리즘정렬 알고리즘을 사용할 때, 상황에 맞게 다음의 기준들로 사용할 알고리즘을 선정한다.시간 복잡도 (소요되는 시간)공간 복잡도 (메모리 사용량)시간, 공간 복잡도는 Big-O 표기법으로 나타낼 수 있다. 정렬되는 항목 외에 충분히 무시할 만한 저장공간만을 더 사용하는 정렬 알고리즘들을 제자리 정렬이라고 한다. 정렬 알고리즘의 특징특징설명시간 복잡도일부 알고리즘은 작은 데이터 집합에 대해 빠르지만, 큰 데이터 집합에 대해 느릴 수 있다.알고리즘의 시간 복잡도를 고려하여 적절한 정렬 알고리즘을 선택해야 한다.안정성안정적인 정렬 알고리즘은 동일한 값의 순서가 바뀌지 않는 특징을 가지고 있다.이는 동일한 값을 가진 요소들의 순서가 ..
SSL / TLS 보안 소켓 계층(Secure Sockets Layer, SSL)디지털 인증서로 불리며, 브라우저(사용자의 컴퓨터)와 서버(웹 사이트) 사이의 암호화된 연결을 수립하는 데 사용된다. SSL(전송 계층 보안)은 컴퓨터 네트워크를 통해 통신 보안을 제공하는 C 언어로 작성된 암호화 프로토콜로 암호화를 사용하여 데이터의 무결성과 기밀성을 보호한다. 전송 계층 보안(Transport Layer Security)TLS(전송 계층 보안)는 인터넷을 통한 보안 통신을 위한 표준으로 클라이언트/서버 애플리케이션이 도청 및 정보 변조를 방지하도록 설계된 방식으로 네트워크를 통해 통신할 수 있도록 한다. SSL/TLS 인증서의 중요성SSL/TLS 인증서는 웹 사이트 사용자 간에 신뢰 관계를 설정한다. 기업은 웹 서버에 SS..
WIL - 13 Fact : 이번주 있었던 일, 내가 한 일월 : 프로젝트 트러블 슈팅 수정화 : 프로젝트 브로셔 수정수 : 게임 로직 수정목 : 게임로직 버그 수정, 유저 테스트 시작금 : 게임로직 버그 수정토 : 프로젝트 간편 소개 영상 제작Feeling : 나의 감정적인 반응, 느낌프로젝트 발표 전에 유저 테스트를 할 수 있을지 걱정되었는데 짧은 기간이지만 유저 테스트를 진행할 수 있게되서 좋았음6주 간 프로젝트 기간동안 부족했던 점이 많아서 아쉬웠음Finding : 그 상황으로부터 내가 배운 것, 얻은 것팀원과의 자주 소통하면서 프로젝트를 진행할 필요성을 배웠다.Future : 배운 것을 미래에 어떻게 적용할 것인가내가 해야되는 일에 대해 파악하는 시간을 가진 후 코드를 설계하는 것이 좋을 것 같다혼자서 안 되는..
Proxy Proxy'대리', '대신'이라는 뜻을 가지며, 프로토콜에 있어서는 대리 응답 등에서 사용하는 개념이다. 클라이언트와 서버 사이에 존재하며, 중계기로서 대리로 통신을 수행하는 것을 Proxy라고 하며, 그 중계 기능을 하는 주체를 Proxy Server라고 한다. Proxy 서버의 특징프록시 서버는 클라이언트와 서버의 입장에서 볼 때 서로 반대의 역할을 하는 것처럼 보여지게 된다.클라이언트가 프록시를 바라보면 프록시가 '서버'와 같이 동작을 하게 되는 것이고, 반대로 서버가 프록시를 바라보면 '클라이언트'처럼 작동을 하게 되는 것이다. Proxy 서버를 이용한 데이터 통신 과정클라이언트에서 프록시 서버로 전달할 요청을 보낸다.프록시 서버는 클라이언트로부터 전달 받은 요청을 서버에 요청한다.서버는 요청에 ..
ORM ORM(Object Relational Mapping, 객체-관계 매핑)객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 기술객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용하기 때문에 객체 모델과 관계형 모델 간에 불일치가 존재한다.ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.데이터베이스 데이터 ←매핑→ Object 필드객체를 통해 간접적으로 데이터베이스 데이터를 다룬다.Persistant API라고도 할 수 있다.JPA, Hibernate 등ORM의 장단점장점객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 있게 도와준다.ORM을 이용하면 SQL Query가 아닌 직관적인 코드(메서드)로 데이터를 조작할..
Array & LinkedList 자료 구조데이터를 효율적으로 저장, 관리, 처리하기 위해 컴퓨터에 데이터를 조직화하고 관리하는 방법으로 다양한 종류의 자료 구조가 있으며, 각각은 특정 종류의 문제를 해결하기 위해 설계되었다. 기본적인 자료 구조에는 배열, 연결 리스트, 스택, 큐, 트리, 해시 테이블 등이 있다. 배열(Array)배열은 입력된 데이터들이 메모리 공간에서 연속적으로 저장되어 있는 자료구조이다.메모리 상에서 연속적으로 저장되어 있는 특징을 갖기 때문에 index를 통한 접근이 용이하다.고정된 크기를 가지며, 크기 변경이 어렵다, 미리 할당된 메모리 크기를 초과하면 새로운 메모리 공간을 할당하고 데이터를 복사해야 한다.메모리 사용이 효율적으로 추가적인 메모리를 사용하지 않는다.시간 복잡도탐색 : O(1). 단, 접근하려는 인..