320x100
반응형
블로그 그만쓰고 취업하고 싶다.........
⭐️cs
📌git flow에 대해서 간략하게 설명해주세요
- Git을 사용해서 개발 작업을 진행하는 프로세스로 복잡한 프로젝트에서 개발자들이 효율적으로 협업하고 배포를 관리할 수 있도록 설계되었습니다
- master 브랜치는 제품 배포 버전을 관리하는 브랜치로 안정적이고 배포 가능한 코드만을 포함해야합니다
- develop 브랜치는 , 그다음 버전을 준비하는 브랜치로 기능 개발이나 버그 수정등의 작업은 모두 develop브랜치에서 진행합니다
- Feature 브랜치는 새 기능을 개발하는 브랜치로 develop을 베이스 브랜치로 가지며, 완료되면 develop에 머지하고 릴리즈(소스코드의 결과물을 공유)를 준비합니다
- Release 브랜치는 다음배포를 위해 기능에 문제가 없는지 품질체크(QA) 용도의 브랜치입니다 Develop 브랜치에서 Release 브랜치를 분기하여 배포 준비 작업을 수행합니다
- Hotfix 브랜치는 배포가 되고 나서(master에 배포 코드가 합쳐진 후) 버그 발생 시 긴급 수정하는 브랜치입니다 Master 브랜치에서 분기하여 수정 작업을 수행하고, 수정이 완료되면 Master 브랜치와 Develop 브랜치에 Merge 합니다
Git Flow에서의 작업 흐름
- Develop 브랜치에서 Feature 브랜치를 생성하여 새로운 기능을 개발합니다
- Feature 브랜치에서 개발이 완료되면 Develop 브랜치에 Merge 합니다
- Develop 브랜치에서 Release 브랜치를 생성하여 새로운 배포 버전을 준비합니다
- QA 과정에서 버그가 발생하면 Release 브랜치에서 수정한 후 커밋합니다
- QA가 종료되면 Release 브랜치를 Master와 Develop 브랜치에 Merge 합니다
- Master 브랜치에서 버전을 태깅하고, 배포합니다.
태깅(Tagging)은 Master 브랜치에서 특정 시점에서 버전을 명시하는 것
"v1.0"과 같은 형식으로 태그를 생성할 수 있는데 이를 통해 배포된 소스 코드의 버전 관리를 용이하게 할 수 있다
📌유니코드란 무엇인가요?
- 전 세계의 모든 문자와 기호를 컴퓨터에서 일관되게 표현하고 처리하기 위한 국제표준 인코딩 방식입니다
- 숫자와 글자, 즉 키와 값이 1:1로 매핑된 형태의 코드이다
📌캐시란 무엇인가요? 캐시의 일반적인 작동원리를 설명해주세요.
- 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소로 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공합니다
- 작동 원리는 데이터를 가져올 때 먼저 캐시에서 데이터를 찾습니다
- 캐시에 데이터가 있으면 이를 사용하고 없으면 원본데이터를 가져와 캐시에 저장합니다
- 이후 같은 데이터를 요청할때 캐시에서 데이터를 가져오므로 원본 데이터에 접근할 필요가 없어 처리속도가 빨라집니다
- 일반적으로 빠른 접근 속도를 위해 메모리나 디스크에 저장됩니다
🧩캐시의 장점
- 애플리케이션 성능 개선
- 데이터베이스 비용 절감
- 백엔드 부하 감소
- 예측 가능한 성능
- 데이터베이스 핫스팟 제거
- 읽기 처리량 증가(읽기 처리량: IOPS; Input/output operations per second. HDD, SSD 등의 컴퓨터 저장 장치의 성능 측정 단위)
🧩웹서비스에서 캐시가 적용되는 예제
- 웹 페이지의 HTML, CSS, JavaScript 파일 등을 캐시에 저장하여 같은 페이지를 다시 열었을 때 더 빠르게 로드할 수 있습니다
=>사용자 경험 향샹 - 웹서비스에서 API를 사용할 때, API 결과를 캐시에 저장하여 다시 요청할 때 빠르게 결과를 얻을 수 있습니다
=>API 요청 횟수 줄어듬 - 사용자가 클릭하기 전에 미리 다음 페이지를 캐시에 저장하여 빠르게 로드할 수 있다
📌컴파일러와 인터프린터의 차이가 무엇인지 설명해 주세요
- 컴파일러는 작성된 소스 코드 전체를 컴파일하여 기계어로 변환하는 도구입니다
- 줄 단위로 번역하는 인터프리터에 비해 번역 시간은 오래걸리는 편이지만 한번 번역을 하면 실행 파일이 생성이 되어 다음에 실행을 할때 기존에 생성되었던 실행 파일을 실행하므로 실행시간이 빠른편입니다
- 인터프리터는 소스코드를 바로 실행하는 도구로 소스 코드를 한줄씩 읽어서 즉시 실행합니다 이때문에 실행시간이 느리지만 실행 중에 오류를 바로 확인할 수 있어 디버깅이 쉽습니다
📌가비지 컬렉션은 무엇이며, 가비지 컬렉션 기능을 가진 언어는 무엇인가요?
- 프로그램에서 동적으로 할당된 메모리 중에서 사용하지 않는 영역을 자동으로 탐지하고, 그 영역을 해제하여 다시 사용 가능한 메모리로 만드는 기능입니다
- 사용되지 않는 메모리를 해제하는 과정을 가비지 컬렉션이라고 합니다
- Java, C#, Python, Ruby, JavaScript 등이 있습니다
- 이러한 언어들은 모두 가비지 컬렉션을 자동으로 처리하기 때문에 개발자가 명시적으로 메모리를 할당하거나 해제하지 않아도 됩니다.
- 하지만 메모리 해제를 자동으로 처리하기 때문에 메모리 해제 시점을 개발자가 제어할 수 없다는 단점이 있습니다
📌RAM 메모리 주소는 왜 16진법로 표현할까요?
- 2진수나 10진수보다 16진수가 주소값을 짧게 표현할 수 있기 때문입니다
- 16진법은 컴퓨터 시스템에서 많이 사용되는 숫자 체계 중 하나이기 때문에, 이를 사용하여 주소를 표현하면 컴퓨터 시스템 전반에 걸쳐 일관성을 유지할 수 있습니다.
728x90
반응형
'프론트 엔드 기술면접' 카테고리의 다른 글
프론트 엔드 기술면접 정리 5 (7) | 2023.03.20 |
---|---|
프론트엔드 기술면접 4 (8) | 2023.03.14 |
프론트엔드 기술면접 정리 3 (7) | 2023.03.06 |
프론트 엔드 기술면접 정리 2 (6) | 2023.02.27 |
프론트엔드 기술면접 정리 1 (5) | 2023.02.24 |