CS
6 posts
TDD(Test-Driven Development)에 대해 알아보자

블로그 이전했습니다! https://computasha.com/Clean+Code/테스트/TDD(Test-Driven+Development)+개념과+장단점 ✨ 오늘의 목표 : TDD 이해하기 👩‍💻 TDD란? TDD(Test-Driven Development)는 테스트가 코드 작성을 주도하는 개발 방식이다. 요구 사항에 따른 자동화된 테스트케이스를 작성한 후, 해당 테스트를 통과하는 가장 간단한 코드를 작성하고 리팩토링 하는 과정의 반복이다. 새로운 기능을 추가할 때 테스트 코드를 작성함으로써, 새로운 기능이 제대로 작동함과 동시에 기존의 기능들이 잘 작동하는지 테스트를 통해 간단히 확인할 수 있다. (기존에 소프트웨어가 먼저 개발되고 테스트 사례가 나중에 만들어지는 것과는 정반대의 방식이다!) 🔁 TDD 과정 based on the book Test-Driven Development 1. Add a test TDD에서는, 새로운 기능을 추가하기 전에 제대로 동작하는 경우 통과하는 테…

January 13, 2023
CS
JPEG와 PNG의 차이점

블로그 이전했습니다! https://computasha.com/basic/term/JPEG와+PNG의+차이점 ✨ 오늘의 목표 : JPG와 PNG의 차이점을 이해하고, iOS 개발에 더 적합한 포맷 알기 🖼️ JPEG 포맷이란 JPEG(Joint Photographic Experts Group) 파일은 이미지를 저장하는 가장 일반적인 형식이다. JPEG 파일은 빠른 저장과 전송을 위해 손실 압축 방식으로 이미지를 저장한다. 손실 압축 방식이란, 사람의 눈으로 볼 수 없는 시각적 데이터를 제거하고 색상 변형을 평균화하는 방법으로, 이를 통해 이미지 파일의 크기를 최대한 작게 유지할 수 있다. 다만 압축을 할때 원본 이미지의 품질이 훼손될 수 있다는 단점이 있다. 🖼️ PNG 포맷이란 PNG(Portable Network Graphic) 포맷은 무손실 압축 방식을 사용하므로 압축 시 모든 원본 데이터를 유지한다. 중요한 정보가 손실되지 않기 때문에 디테일한 이미지를 저장하는데 적합하다. 다…

January 07, 2023
CS
정적/동적 바인딩, 정적/동적 타입

⛓️ 바인딩이란? 함수를 컴파일하면, 선언된 함수의 코드는 메모리에 저장되고 함수 호출문에는 코드의 메모리 주소값이 저장된다. 여기서 프로그램을 실행하면 함수 호출문에서 함수 코드가 저장된 주소로 이동한 후 함수를 실행하고 원래 위치로 돌아오는데 이때 함수 호출문에서 함수 코드가 저장된 주소로 연결하는 과정을 바인딩이라고 한다. 🏃🏻 동적 바인딩 의 경우, 컴파일 과정에서는 부모 클래스의 함수를 참조하지만 런타임 과정에서 실제로는 자식 클래스의 함수와 바인딩된다. 왜? 의 경우, 컴파일 과정에서 정의된 타입 형식을 참조해서 어떤 클래스와 메소드를 참조할지 결정하는데(=super class의 메소드) 의 경우에는 런타임에 실제 객체를 찾으니까 오버라이드된 자식 클래스의 메소드의 결과가 출력된다. → 다형성(Polymorphism)을 잘 보여준다 (컴파일러는 static method에 대해 실제 객체를 찾는 작업을 하지 않음) 대부분의 객체 지향 언어가 을 지원한다물론 예외도 있음 필요…

February 16, 2022
CS
객체 지향 프로그래밍, OOP의 개념과 특징

블로그 이전했습니다! https://computasha.com/basic/term/객체+지향+프로그래밍%2C+OOP의+개념과+특징 프로그래밍 패러다임과 함수형 프로그래밍에 관해서는 여기를 참고해주세요! OOP란? 객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, ‘객체’들의 상호작용(메시지 주고받기, 데이터 처리 등)으로 프로그램 로직을 구성하는 프로그래밍 패러다임이다. 💡 프로그래밍 패러다임 프로그래밍 패러다임(Programming Paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 하고 코드를 어떻게 작성할지 결정하는 역할을 한다. 새로운 프로그래밍 패러다임을 통해서는 새로운 방식으로 생각하는 법을 배우게 되고, 이를 바탕으로 코드를 작성하게 된다. OOP의 특징 1. 캡슐화, Encapsulation 💊 한 객체가 특정한 하나의 목적을 위해 필요한 데이터…

February 12, 2022
CS
프로그래밍 패러다임과 함수형 프로그래밍

블로그 이전했습니다! https://computasha.com/basic/term/프로그래밍+패러다임%2C+함수형+프로그래밍 💫 프로그래밍 패러다임 프로그래밍 패러다임(Programming Paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 하고 코드를 어떻게 작성할지 결정하는 역할을 한다. 새로운 프로그래밍 패러다임을 통해서는 새로운 방식으로 생각하는 법을 배우게 되고, 이를 바탕으로 코드를 작성하게 된다. 명령형 프로그래밍 : 프로그래밍의 상태와 상태를 변경시키는 구문의 관점에서 연산을 설명하는 방식 절차지향 프로그래밍 : 수행되어야 할 연속적인 계산 과정을 포함하는 방식 (C, C++) 객체지향 프로그래밍 : 객체들의 집합으로 프로그램의 상호작용을 표현 (C++, Java, C#) 선언형 프로그래밍 : 어떤 방법으로 해야 하는지(How)를 나타내기보다 무엇(What)과 같은지를 설명하는 방식 함수형 프로그래밍 : 순수 함수를 조합하고 소프트웨어를 만드는 방식 (클로저…

January 29, 2022
CS
CPU 코어와 스레드

블로그 이전했습니다! https://computasha.com/basic/term/CPU+코어와+스레드 CPU 코어 CPU = centeral Processing Unit, 중앙 처리 장치 코어 = 물리적인 CPU의 프로세서를 의미 CPU 코어의 역사 싱글 코어 👤 = 한 명이 컴퓨터에서 일한다 = 한 번에 하나씩만 처리 가능 → 한 번에 여러 개 처리하기 위해서는 현재 실행 중인 프로그램 간 전환을 빨리해서 사용자로 하여금 동시에 실행하고 있는 것처럼 느끼게 함 그전에도 멀티코어의 개념은 등장했는데 개발하지 않은 이유 1980년쯤에는 싱글 코어로도 원하는 연산 수행 충분히 가능했음 여태 만들어진 코드가 싱글 코어에서 최적의 성능을 보임 (이전 프로그램은 하나의 일을 분배해서 나누는데 시간이 더 오래걸렸음) 좀 느리다 싶으면 CPU의 클럭을 올려서(=채찍질을 더 열심히 해서) 더 빨리 계산하게 만들면 감당 가능했음 → 근데 이게 2004년도쯤 오니까 CPU가 과부화 돼서 뜨거워지기…

January 22, 2022
CS