본문 바로가기

반응형

전체 글

데이터 주도 개발 이란 무엇인가? - 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 문서나 이미지 파일 등의 데이터를 주고.. 더보기
파이썬 3 문자열 replace() 메소드 사용방법 - Python 3 - String replace() Replace() 메서드 최근에 Leetcode 에서 파이썬 3 (Python3)으로 문제를 풀고 있는 도중 푸는 코딩중에 기존 문자에서 특정 문자를 다른 문자로 바꿔야 했다. Python이 갖고 있는 메서드 중에 Replace()라는 사용방법을 찾아봤다. replace() 메서드 사용 예시 # 문자열 생성 my_string = "Hello, World!" # 문자열의 'Hello'를 'Hi'로 대체 new_string = my_string.replace("Hello", "Hi") # 결과 출력 print(new_string) 출력 결과: Hi, World! 위 코드에서 replace() 메서드는 "Hello" 문자열을 "Hi" 문자열로 대체하고, 새로운 문자열을 반환한다. 반환된 문자열은 new_str.. 더보기
지속적인 통합, 지속적인 배포 (Continuous Integration/Continuous Delivery - CI/CD) 예전에 일하던 회사도 비슷했지만, 요즘엔 애플리케이션 개발 단계를 자동화하여 더욱 짮은 주기로 고객에게 제공하기를 원한다. 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌하는 문제가 자주 발생하게 된다. 이문제를 해결하기 위해 지속적인 통합, 지속적인 배포 구현을 목표로 한다. 그렇다면 지속적인 통합, 지속적인 배포(CI/CD)가 무엇을 의미하는가. 지속적인 통합, 지속적인 배포(CI/CD) 소프트웨어 개발 과정에서 개발자들이 자주 변경하는 코드를 자동으로 빌드, 테스트, 배포하는 프로세스이다. 지속적인 통합(CI)은 개발자들이 변경한 코드를 주기적으로 빌드하고, 테스트하여 즉각적인 피드백을 받을 수 있도록 합니다. 이를 통해 코드 오류나 충돌을 빠르게 발견하고 수정.. 더보기
바이너리 서치 - Binary Search 처음 프로그래밍을 접하다 보면 여러 가지 알고리즘을 접하게 된다. 그중에 제일 먼저 배우게 되는 것이 데이터 처리 과정에서 많이 쓰이는 바이너리 서치(Binary Search)이다. 그렇다면 바이너리 서치란 무엇인가? 바이너리 서치 (Binary Search) 바이너리 서치는 주어진 배열에서 원하는 값을 빠르게 찾는 알고리즘으로, 이진 검색이라고도 불리며, 탐색 속도가 매우 빠르기 때문에 많이 활용된다. 바이너리 서치의 동작 방식 탐색하고자 하는 배열의 가운데 값을 선택 선택한 값과 찾고자 하는 값을 비교 선택한 값이 찾고자 하는 값과 같다면, 탐색을 종료하고 값을 반환 선택한 값이 찾고자 하는 값보다 크다면, 선택한 값의 왼쪽 부분 배열에서 1 ~ 3 단계를 반복 선택한 값이 찾고자 하는 값보다 작다면.. 더보기
SOLID 원칙 (SOLID Principle) - 객체지향 디자인 프로그래밍을 시작하면서 처음부터 접하게 되는 게 Objective Orientied Programming (OOP, 객체 지향 프로그래밍)이다. OOP는 소프트웨어 개발에서 일반적으로 사용되는 패러다임 중 하나이다. OOP는 코드를 더 모듈화 하고 재사용 가능한 댄위로 구성하며, 코드를 더 쉽게 이해하고 유지보수할 수 있게 해 준다. 그렇다면 정확하게 정의를 한다면.. 객체 지향 프로그래밍이란 - What is Objective Oriented Programming 객체 지향 프로그래밍의 주요 특징 중 하나는 캡슐화이다. 캡슐화는 데이터와 데이터를 조작하는 메서드를 하나의 단위로 묶어서 외부에 노출시키지 않는 것을 하는데, 이는 데이터를 보호하고 유효성을 검사하는 등의 역할을 수행하며, 코드의 안정성을 .. 더보기

반응형