본문 바로가기

학습 내용 정리

(155)
테스트 코드 테스트 코드(Test code)는 소프트웨어의 기능과 동작을 테스트하는 데 사용되는 코드입니다. 저는 테스트 코드를 CI/CD 과정에서 사용하였고 테스트를 통과하면 배포가 될 수 있게 하였습니다. integeration 테스트를 주로 진행하였으며 다른 서버의 api 호출이 필요한 경우 mocking 서버를 만들어서 이용하면 되고 해당 부분을 진행 중에 있습니다.
DB 로직 최소화 DB 로직을 최소화하는 것은 성능을 향상시키고 유지 보수를 간소화하는 데 도움이 됩니다. 예를 들어, 이러한 방법으로 DB 로직을 최소화할 수 있습니다. EX. 1. 일관된 데이터 모델링: 데이터베이스 테이블과 엔테테를 일관성 있게 설계하고 중복 데이터를 줄이고 일관성을 유지하여 데이터 중복을 최소화화고 무결성을 유지한다. 2. 비즈니스 로직 최적화: 데이터베이스에서 비즈니스 로직을 수행하기보다는 비즈니스 로직을 애플리케이션 레벨에서 처리한다. 데이터베이스는 데이터 저장과 관리에 중점을 두는 것이 좋다. 3. 캐싱: 반복적으로 동일한 데이터를 검색해야 하는 경우, 검색 결과를 캐시하여 데이터베이스 요청을 최소화할 수 있다. 4. 배치 작업: 대량의 데이터를 처리해야 할 때는 배치 작업을 사용하여, 데이터..
쿼리 최적화 쿼리 최적화는 데이터베이스 시스템에서 데이터를 효율적으로 검색하고 처리하기 위해 SQL 쿼리의 실행 계획을 개선하는 과정을 의미하며, 주로 데이터베이스 성능을 향상시키고 응답 시간을 줄이는 데 중요한 역할을 합니다. 쿼리 최적화 방법은 주로 1. 인덱스 사용: 데이터를 베이스에서 필요한 정보를 찾기 위해 인덱스를 활용한다. 2. 통계 정보 활용: 데이터베이스는 통계 정보를 기반으로 한 데이터 액세스 및 처리 방법을 최적화한다. 3. 시스템 모니터링: 데이터베이스 시스템을 모니터링하여 성능 이슈를 식별하고 조치하여 스템의 부하나 병목 현상을 줄인다. 4. 캐싱: 이전에 실행한 쿼리 결과를 캐시에 저장하여 동일한 쿼리가 다시 실행될 때 데이터베이스에 접근하지 않고 캐시에서 결과를 반환한다. 5. 파티션 및 ..
멀티 프로세스와 멀티 쓰레드 Q. 멀티프로세스와 멀티쓰레드의 특징에 대해 설명해주세요. A. 멀티 프로세스란 두개 이상 다수의 프로세서(CPU)가 협력적으로 하나 이상의 작업(Task)을 동시에 처리하는 것이다. 멀티쓰레드란 하나의 프로세스에 여러 스레드로 자원을 공유하며 작업을 나누어 수행하는 것이다.
프로세스와 쓰레드 Q. 프로세스와 쓰레드에 대해서 설명하고 그 차이에 대해서 설명해주세요. A. 프로세스는 컴퓨터에서 실행되는 독립적인 프로그램의 인스턴스입니다. 각 프로세스는 자체 메모리 공간과 시스템 자원(CPU 시간, 파일 및 입출력 장치)을 할당받고, 프로세스는 서로 완전히 독립되어 있어 하나의 프로세스가 오류를 일으켜도 다른 프로세는 오류를 받지 않습니다. 쓰레드는 어떠한 프로그램 내에서, 특히 로세스 내에서 실행되는 독립적인 실행 흐름의 단위입니다. 같은 프로세스 내에서 다른 쓰레드와 공유 메모리 공간과 자원을 사용하며, 이로 인해 쓰레드 간 데이터 공유와 통신이 간단하게 이루어집니다. 하지만 이러한 공유로 인해 쓰레드 간의 동기화 충돌 문제가 발생할 수 있습니다. 프로세스는 서로 완전히 독립되어 있어 하나의 ..
자료와 자료구조 1. 텍스트 자료의 표현 ASCII : 7비트로 구성되며, 각각의 비트 조합은 128개의 고유한 문자를 나타냅니다. 유니코드 : 유니코드에 먼저 등록된 영어와 숫자같은 문자는 1byte , 그뒤에 등록된 문자는 4byte와 같이 차별적 혹은 가변적으로 할당하는 방법을 택했습니다. 2. 숫자 자료의 표현 부호 없는 정수, 부호 있는 정수, 실수 (부동 소수점 표현 방식) 3. 선형/비선형 자료 구조 4. 선형 자료구조 4-1. 배열 [ 배열의 특징 ] 순서가 있습니다. (메모리 순서대로) 연속된 공간을 '미리' 정해서 사용해야 합니다. (확정된 메모리 공간을 할당받아 써야 하므로) N번째 데이터에 접근하기 위해 복잡한 과정 필요없이 그냥 덧셈과 곱셈 한번이면 가능합니다. (n번째 데이터 접근 : 시작 주소..
TDD Q. TDD에 대해서 설명해주세요. A. TDD란 Test Driven Development의 약자로 '테스트 주도 개발'이라고 한다. 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.
CI/CD Q. CI/CD에 대해서 설명해주세요. A. CI (Continuous Integration(지속적 통합)): CI는 소프트웨어 개발 프로세스에서 여러 개발자가 협업하여 소스 코드 변경 사항을 지속적으로 통합하는 개념입니다. 이는 코드 변경 사항이 충돌하거나 문제가 발생하는 것을 방지하기 위해 개발자가 자주 코드를 공유하고, 자동으로 빌드하고 테스트하여 통합하는 프로세스를 포함합니다. 이를 통해 코드 품질을 유지하고 개발자들이 변경 사항을 빠르게 공유하고 테스트할 수 있도록 합니다. CD (Continuous Delivery(지속적 전달) 또는Continuous Deployment(지속적 배포)): CD는 CI와 테스트를 통과한 코드 변경 사항을 자동으로 프로덕션 환경에 배포하는 개념을 나타냅니다. Co..