본문 바로가기

반응형

잡인터뷰

소스 컨트롤 과 버전 컨트롤의 차이점 - Source Control vs Version Control 구직을 하다 보면 소스 컨트롤이나 버전 컨트롤이라는 툴을 자주 보게 된다. 또한 회사에 들어가 코딩을 하다 보면 두 가지의 단어 중 하나 또는 모두 사용하게 된다. 그렇다면 소스 컨트롤과 버전 컨트롤이 다른 점은 무엇일까? 일단 둘이 비교 하기 위해서는 먼저 두가지 모두 무엇을 얘기하는 지를 알아야 한다. 소스 컨트롤(Source Control) 이란 소스 컨트롤은 소프트웨어 개발에서 개발자들이 작성한 코드나 파일 등의 변경 이력을 관리하는 도구이다. 소스 코드를 수정할 때마다 변경 이력을 저장하고, 각 버전을 관리하여 이전 버전으로 되돌리거나 변경 이력을 추적할 수 있다. 협업 작업을 수행할 때 가장 중요한 역할을 한다. 여러 명의 개발자들이 동시에 작업할 때, 각자 작성한 코드가 충돌하는 경우가 발생.. 더보기
파이썬 - Python 3.11의 새로운 점 파이썬 3.11이 작년 11월에 출시되었다. 지인에 의하면 런타임이 많이 빨라졌다는 얘기를 들을 수 있었다. 다만 그때는 내가 파이썬으로 코딩을 하는 횟수가 적었지만 지금은 나도 파이썬으로 집중해 보기 위해, 예전버전과 3.11의 버전의 차이 점을 다시 한번 찾아봤다. 파이썬의 새로운 점 - What's new in Python 3.11 Python 3.11은 현재 2023년 3월 기준으로 최신 버전이며 이전 버전과 비교해 많은 개선 사항들이 있다고 한다. 1. 첫 번째로, 새로운 구문이 추가되었다. - 이전에는 async와 await 구문을 사용하여 비동기 처리를 했지만, 이제는 async와 def를 함께 사용하여 비동기 함수를 선언할 수 있다. 또한 새로운 산술 연산자 |=와 ^=가 추가되었다. 예를.. 더보기
데이터 주도 개발 이란 무엇인가? - Data Driven Development DDD라고 하면 Domain Driven Design (DDD)와 Data Driven Development (DDD) 2가지를 찾아볼 수 있다. 도메인 주도 설계(Domain Driven Design)는 2004년에 Eric Evans(에릭 에반스)가 "도메인 주도 설계: 소프트웨어의 복잡성을 다루는 지혜"라는 책에서 소개되었다. 도메인 모델링의 중요성을 강조하며, 도메인 모델링을 통해 소프트웨어의 복잡성을 해결하는 방법을 제시했다. 데이터 주도 개발(Data Driven Development)은 최근 몇 년간 데이터 과학과 머신러닝 등 데이터를 기반으로 한 기술의 발전에 따라 등 잘한 개념이다. 데이터를 중심으로 의사 결정을 내리고, 데이터를 분석하여 소프트웨어를 개발하는 방법을 강조한다. 데이터 분.. 더보기
잡 인터뷰 질문중 코딩테스트 - PHP 최근에 잡인터뷰를 예상하지 못하게 갑자기 여러 군데를 한꺼번에 보게 되었다. 물론 결과는 나중을 봐야 알겠지만... 그 중 한 군데에서 내가 예전에 Leetcode에서 한번 해봤던 문제를 냈다. 문자열이 팰린드롬(palindrome) 인지 아닌지를 확인하는 코딩이었다. 물론 PHP로 하는 코딩이라 쉽게 `strrev()`라는 함수를 쓰면 곰방 끝나겠지만, 그렇게 해버리는 이 문제의 핵심을 잃어버리는 것. 투보인터 알고리즘 (Two Pointer Algorithm)을 사용해서 찾을 수 있는 방법을 원하는 것이다. 예전 포스트에서 설명했듯이 문자열의 시작과 끝을 가리키는 두 개의 포인터를 놓고 이후 두 포인터 문자 짝이 맞는지를 확인하면 되는 것이다. 그럼 PHP코드를 보면 간단하다. function isP.. 더보기
TDD는 무엇인가? - Test Driven Development TDD는 무엇인가? TDD(테스트 주도 개발)는 소프트웨어 개발 방법론 중 하나로, 개발자가 먼저 테스트 케이스를 작성하고, 이를 통과하는 코드를 작성하는 것이다. TDD는 크게 세 단계로 이루어집니다. 첫째, 실패하는 테스트를 작성한다. 이는 해당 기능을 구현하기 위해 필요한 최소한의 요구사항을 담고 있다. 둘째, 테스트를 통과할 수 있는 코드를 작성한다. 이 단계에서는 단순히 테스트를 통과할 수 있도록 코드를 작성하는 것이 아니라, 테스트를 통과하면서 코드의 품질을 유지하도록 작성한다. 셋째,. 이는 코드를 보다 간결하고 유지보수하기 쉽도록 개선하는 것이다. 예를 들어, 로그인 기능을 개발한다고 가정해 보면, 우선 로그인 기능을 구현하기 위해 필요한 최소한의 요구사항을 생각 해야 힌디. 이를 바탕으로.. 더보기
http와 https의 차이점 http.. https라는 용어는 꼭 프로그래머가 아니라도 자주 들을 수 있는 단어다. 오래전부터 http와 https는 존재해 왔다지만, 예전에는 우리가 https사용 빈도는 많지 않았다. Google의 Chrome웹브라우저 라든지 다른 웹브라우저에서 http의 경우 안전하지 않다는 문구를 넣기 시작하면서 많은 업계에서 https의 사용량이 늘게 되었다. 그렇다면 왜 https는 안전한데 http는 안전하지 않은 걸까? HTTP, HTTPS 는 무엇일까? HTTP(Hypertext Transfer Protocol)는 인터넷상에서 데이터를 주고받는 통신 규약 중 하나다. 클라이언트와 서버 간에 데이터를 주고받기 위한 프로토콜로, 웹 브라우저와 웹 서버 간에 HTML 문서나 이미지 파일 등의 데이터를 주고.. 더보기
지속적인 통합, 지속적인 배포 (Continuous Integration/Continuous Delivery - CI/CD) 예전에 일하던 회사도 비슷했지만, 요즘엔 애플리케이션 개발 단계를 자동화하여 더욱 짮은 주기로 고객에게 제공하기를 원한다. 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌하는 문제가 자주 발생하게 된다. 이문제를 해결하기 위해 지속적인 통합, 지속적인 배포 구현을 목표로 한다. 그렇다면 지속적인 통합, 지속적인 배포(CI/CD)가 무엇을 의미하는가. 지속적인 통합, 지속적인 배포(CI/CD) 소프트웨어 개발 과정에서 개발자들이 자주 변경하는 코드를 자동으로 빌드, 테스트, 배포하는 프로세스이다. 지속적인 통합(CI)은 개발자들이 변경한 코드를 주기적으로 빌드하고, 테스트하여 즉각적인 피드백을 받을 수 있도록 합니다. 이를 통해 코드 오류나 충돌을 빠르게 발견하고 수정.. 더보기
바이너리 서치 - Binary Search 처음 프로그래밍을 접하다 보면 여러 가지 알고리즘을 접하게 된다. 그중에 제일 먼저 배우게 되는 것이 데이터 처리 과정에서 많이 쓰이는 바이너리 서치(Binary Search)이다. 그렇다면 바이너리 서치란 무엇인가? 바이너리 서치 (Binary Search) 바이너리 서치는 주어진 배열에서 원하는 값을 빠르게 찾는 알고리즘으로, 이진 검색이라고도 불리며, 탐색 속도가 매우 빠르기 때문에 많이 활용된다. 바이너리 서치의 동작 방식 탐색하고자 하는 배열의 가운데 값을 선택 선택한 값과 찾고자 하는 값을 비교 선택한 값이 찾고자 하는 값과 같다면, 탐색을 종료하고 값을 반환 선택한 값이 찾고자 하는 값보다 크다면, 선택한 값의 왼쪽 부분 배열에서 1 ~ 3 단계를 반복 선택한 값이 찾고자 하는 값보다 작다면.. 더보기

반응형