개발기초42 개발 방법론 (Development Methodology)에 대해서 개발 방법론(Development Methodology)은 소프트웨어 개발 프로젝트의 생명주기를 관리하고 가이드하는 일련의 절차, 원칙, 프로세스, 도구 및 기술들을 포함하는 체계적인 접근 방식입니다. 개발 방법론은 프로젝트의 계획, 요구 사항 분석, 설계, 구현, 테스트 및 유지 보수와 같은 개발 과정에 대한 효율성과 품질을 향상시키는 데 도움이 됩니다. 방법론은 여러가지가 있겠지만, 폭포수 모델, 애자일, 데브옵스, 프로토타입, 스파이럴을 예시로 알아보겠습니다. 폭포수 모델(Waterfall Model) 전통적이고 순차적인 개발 방법론으로, 각 단계가 완료될 때까지 다음 단계로 진행하지 않는 방식입니다. 요구사항 정의, 설계, 구현, 테스트, 유지보수 단계로 구성됩니다. 단계가 순차적으로 진행되기 때.. 개발기초 2023. 4. 19. 데이터베이스와 ORM 데이터베이스 데이터베이스(Database)는 데이터를 저장하고, 검색하고, 수정하고, 삭제하는 작업을 수행하는 시스템을 말한다. 특정 조직이나 개인이 필요한 정보를 쉽게 검색하고 관리할 수 있도록 해준다. 데이터베이스는 일반적으로 테이블(table)로 구성되며, 각 테이블은 열(column)과 행(row)으로 이루어져 있다. 이러한 데이터는 일반적으로 CRUD(Create, Read, Update, Delete) 작업을 통해 관리된다. 또한 데이터베이스는 여러 사용자의 동시 액세스를 처리할 수 있도록 하는 동시성 제어 기능도 제공하여, 데이터의 일관성 및 무결성을 보장한다. 데이터베이스는 데이터베이스 관리 시스템(DBMS, Database Management System)을 사용하여 관리된다. DBMS는.. 개발기초 2023. 4. 18. [자바스크립트] 동기와 비동기, 코드 실행 방식에 대해서 동기(Synchronous)와 비동기(Asynchronous)는 코드 실행 방식의 두 가지 주요 접근 방식이다. 동기는 직렬적으로 태스크를 수행하는 방식으로, 이전 태스크가 완료되어야 다음 태스크를 수행할 수 있다. 한 작업이 실행하는 동안, 다른 작업은 실행을 기다린다. 다시 말해, 코드의 실행이 순차적으로 일어나기에 이전 작업이 완료되지 않으면 다음 작업을 수행할 수 없다. 이 방식은 코드가 실행될 때 보통 호출한 함수가 반환될 때까지 기다릴 필요가 있을 때 사용된다. 만약, 동기 방식에서 순차적으로 실행되는 코드에서 문제가 발생하면 전체 애플리케이션이 멈추거나, 느려지는 문제가 발생할 수 있다. 자바스크립트는 기본적으로 동기적인 방식으로 실행되지만, 동기적인 실행방식의 단점이 있기 때문에 비동기적으.. 개발기초 2023. 4. 14. [자바스크립트] 비동기적 처리를 돕는 '콜백 함수' 자바스크립트에서는 함수가 일급 객체(First-class Object)로 취급되므로, 함수를 다른 함수의 인자로 전달하고, 함수에서 새로운 함수를 반환하거나, 함수 내부에서 함수를 정의하여 사용할 수 있다. 콜백 함수는 다른 함수의 인자로 전달되어, 해당 함수의 작업이 완료된 후 호출되는 함수를 말한다. 다시 말해, 어떤 함수의 파라미터로 들어가서 나중에 호출되는 함수이다. function add(a, b, callback) { const result = a + b; callback(result); } function printResult(result) { console.log(result); } add(1, 2, printResult); // 3 콜백함수, 왜 필요한가? 주로 웹 브라우저에서 실행되는 .. 개발기초 2023. 4. 13. [자바스크립트] 비동기적 처리를 위한 '이벤트 루프'에 대해 알아보자 이벤트 루프의 존재 이유 : 비동기적 처리! 자바스크립트의 쓰레드 블로킹 최소화 자바스크립트는 싱글 쓰레드 기반의 언어로, 한 번에 한 가지 일만 처리할 수 있다. 즉 모든 작업을 순차적으로 처리하며 하나의 작업이 끝나기 전에는 다른 작업을 수행할 수 없다. 자바스크립트는 기본적으로는 동기적인 방식으로 동작한다. 동기적으로 동작할 때 발생할 수 있는 문제는 쓰레드 블로킹(Thread Blocking)이다. 쓰레드 블로킹은 어떤 쓰레드가 특정 작업을 수행하는 동안, 다른 쓰레드들이 해당 작업이 끝날 때까지 대기하는 상태를 말한다. setTimeout 같은 동작이 요구될 때를 말한다. 이러한 상황은 프로그램의 실행 속도를 느리게 하고, 성능에 영향을 미치고, 교착상태(데드락) 같은 문제를 초래할 수 있다. .. 개발기초 2023. 4. 13. 객체 지향 설계 5원칙(SOLID) - 의존 역전 원칙 DIP [핵심간단] 의존성 역전 원칙 (Dependency Inversion Principle, DIP) - "의존 관계를 맺을 때, 변하기 쉬운(구체적인) 것보다는 변하기 어려운(추상적인) 것에 의존해야한다." - “추상화에 의존해야지, 구체화에 의존하면 안된다.” 구체화된 클래스에 의존하기 보다는 추상 클래스나 인터페이스와 관계를 맺는 것을 의미한다. 간단히 말해서, 추상성에 의존하라는 원칙이다. 이를 통해 비즈니스와 관련된 부분이 세부 사항에는 의존하지 않고자 한다. 고수준 계층의 모듈(클래스)은 저수준 계층의 모듈(클래스)이 있다고 하자. - 고수준: 입력과 출력에 먼 추상화된, 비즈니스적인 부분을 다루는 - 저수준: 고수준 모듈에서 기능을 수행하기 위해 도와주는 역할로, 입력과 출력으로부터 가까운 HTTP, 데이터.. 개발기초 2023. 2. 22. 객체 지향 설계 5원칙(SOLID) - 인터페이스 분리 원칙 ISP [핵심간단] 인터페이스 분리 원칙 (Interface segregation principle, ISP) - "클라이언트는 사용하지 않는 인터페이스에 의존해서는 안 된다." - "특정 클라이언트를 위한 인터페이스 여러 개가 인터페이스 하나보다 낫다" 사용자가 필요하는 기능만 제공하도록 인터페이스는 최대한 세부적으로, 작게 유지해야한다는 말이다. 구체적으로, 특정 클라이언트에 대해서 인터페이스를 구성할 때 한 개의 범용으로 구성하기보다, 여러 개로 구성하는 것이 나은 것이다. 클라이언트가 사용하지 않는 인터페이스에 변경이 발생하더라도 영향을 받지 않도록 만들어야 한다. 만약 불필요한 인터페이스에 의존하면 예상치 못한 문제에 빠질 수 있다. 사용 기능에 따라 인터페이스를 분리한다면 클라이언트는 그 의존도를 낮출 수 있다... 개발기초 2023. 2. 21. 객체 지향 설계 5원칙(SOLID) - 리스코프 치환 원칙 LSP [핵심간단] SRP, OCP 참고 https://veams.tistory.com/65 객체 지향 설계 5원칙(SOLID) - 단일책임원칙SRP, 개방폐쇄원칙 OCP 객체지향 프로그래밍, 어떤 기준으로 설계하면 좋을까? 객체 지향 설계를 할 때, 시간이 지난 후에도 유지 보수와 확장이 쉬운 프로그래밍을 하기 위한 기본 원칙이 5개가 존재한다. 개발자라면 veams.tistory.com 리스코프 치환 원칙 (LSP, Liskov substitution principle) - "서브타입(derived)은 언제나 상위타입(base)으로 교체가 가능해야 한다." 객체 지향 언어에서는 객체의 상속이 일어나며 부모/자식 관계가 정의된다. 하지만 이 과정에서 상속 관계를 잘못 설정하는 경우가 생긴다. LSP 원칙은 올바른 상속은 .. 개발기초 2023. 2. 21. 객체 지향 설계 5원칙(SOLID) - 단일책임원칙SRP, 개방폐쇄원칙 OCP 객체지향 프로그래밍, 어떤 기준으로 설계하면 좋을까? 객체 지향 설계를 할 때, 시간이 지난 후에도 유지 보수와 확장이 쉬운 프로그래밍을 하기 위한 기본 원칙이 5개가 존재한다. 개발자라면 소프트웨어를 효율적이면서도 안전하고 정확하게 설계하고 싶을 것이다. 이 원칙들은 작성한 코드의 가독성을 높이고, 소프트웨어의 확장이 가능할 수 있도록 돕기 위해 필요한 전략이기도 하다. 여기서 이 5가지 원칙을 기억하기 쉽도록 각 약어의 맨 앞글자를 따서 SOLID 원칙으로 부르게 되었다. 단일 책임 원칙(SRP) 개방 폐쇄 원칙(OCP) 리스코프 치환 원칙(LSP) 인터페이스 분리 원칙(ISP) 의존관계 역전 원칙(DIP) SRP, OCP, LSP, ISP, DIP ==> SOLID 각 원칙이 무엇을 의미하는지, 간.. 개발기초 2023. 2. 21. OOP 객체 지향 프로그래밍이란? [핵심간단정리] 객체지향 프로그래밍 (object-oriented programming, OOP) PHP, 파이썬, 자바스크립트, 자바, C#, C++, 루비, 스위프트 등의 프로그래밍 언어는 객체 지향 패러다임에 기반에하여 만들어졌다. 객체지향 프로그래밍은 객체(object)라는 개념을 중심으로 프로그래밍을 한다는 의미로, 소프트웨어 프로그램 동작의 주체가 객체인 것을 뜻한다. 객체는 '실제로 존재하는 사물'로, 다소 추상적이긴 하지만 세상에 존재하는 모든 대상을 의미한다. 이러한 대상은 구체적인 사물, 사람, 어떤 개념이 될 수 있다. 객체지향 프로그램에 대비한 패러다임으로 '절차' 지향 프로그래밍(Procedural Oriented Programming, POP)이 있다. 기존의 이 절차지향 언어는 유지보수의 어려.. 개발기초 2023. 2. 20. 내배캠 11일차 TIL : 프로그래머스 문제 풀이 첫 경험 내일배움캠프 @ 하루 정리 프로그래머스 0단계부터 몇 문제를 풀어봤는데, 아직은 이것도 만만치가 않다. 나는 겨우겨우 한 문제 풀어봤는데, 다 풀고나서 다른 사람들의 풀이를 살펴보니, 엄청 간단하게 작성한 것이 있어서 황당하기도 했다. 그 이외에 여러 답변들을 보고, 동일한 문제를 푸는 해법이 또 다양할 수 있는 것을 보고 신기했다. 나는 while 반복문으로 사용했는데, 어떤 사람은 if문을 사용하고, 또 어떤 사람은 반복문이나 if문도 사용하질 않고 푼 경우도 있었다. 문제는 저작권이 있다고 링크로만. 1. 피자 나눠먹기(3) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/120816 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포.. 개발기초 2022. 11. 24. Javascript : For 반복문과 함수 1. for 반복문 문법. 예시와 함께 for 반복문의 기본형태와 실행 순서를 살펴보자 for (begin; condition; step) {조건을 만족할 때 실행할 코드} for (let temperature = 20; temperature 20도 정도면 적당한 온도입니다. 21도 정도면 적당한 온도입니다. 22도 정도면 적당한 온도입니다. 23도 정도면 적당한 온도입니다. 24도 정도면 적당한 온도입니다. for문은 실행되는 순서가 있다. (1) temperature라는 변수를 선언하고 값을 할당한다 (begin) (2) temperature가 25보다 작은지 연산한다. 결과값이 true라면 계속 실행한다. (condition) (3) 중괄호 안의 코드가 실행된다. (4) temperature에 1을.. 개발기초 2022. 11. 23. 이전 1 2 3 4 다음