본문 바로가기

Programming/기본기7

테스트 코드 작성 규칙 테스트 코드 작성 규칙 테스트 코드 작성 규칙 테스트 코드는 적시에 작성한다 기능의 완성된 이후 테스트코드를 끼워 맞추는것이 아닌 테스트코드로 상황과 기능의 정의를 내린후 로직을 작성한다 테스트는 독립적으로 시행된다 DB의 정보나 외부 api에 연동에 영향을 받아서는 안된다 DB의 정보가 필요할경우 맵퍼나 레파지토리를 모킹한다 즉 순수 자바코드와 프로젝트내에서의 동작을 검증해야한다 (인터넷이 연결이 안되어있어도 돌아가야한다) 테스트는 자가 검증해야한다 테스트코드에 로그를 찍어 확인하는 패턴은 금지 A메서드를 실행시 true라는 값이 나온다면 Assertion을 이용해 검증한다 테스트 코드엔 성공/실패만 있어야한다 최대한 다양한 변수상황을 대입해야한다 다양한 상황을 테스트하여 테스트의 신뢰성을 높여야한다 .. 2021. 9. 29.
테스트 코드의 중요성 회사에 테스트 코드가 체계적으로 작성되어있지 않기도 하고 최근 필요성을 절실히 느끼고 있어서 공부 후 회사에 테스트 코드를 도입하였다. 도입하면서 느꼇던 점들을 블로그에 포스팅해봅니다 :) 테스트 코드의 작성 이유 - a.기능의 추가, 변경, 삭제에 대처하고 자동화 테스트를 위해 - b.예상하지 못한 오류에 대한 피드백을 위해 - c.좋은 설계로 작성되게끔 코드를 유도(테스트를 편하게 하려면 결국 객체지향적 코딩을 해야 한다) - d. 기능 정의의 문서의 역할 - f. 실수를 줄여준다 a) 기능의 추가, 변경, 삭제에 대처하고 자동화 테스트를 위해 프로젝트에서 코딩을 할 때 최초의 기획의도와 다르게 기능이 변경되는 경우가 생각보다 빈번합니다 이번에 결제와 멤버십 관련 기능을 구현하는 업무를 맡았는데 멤버.. 2021. 9. 29.
REST API REST의 정의 - Representational State Transfer의 약자이다 - 자원을 이름으로(자원의 표현)으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미한다. - 즉 , 자원의 표현에 의한 상태 전달이다 - Ex) DB의 학생 정보가 자원일때 student를 자원의 표현으로 정한다 REST의 특징 - Stateless 무상태성 작업을 위한 상태 정보를 따로 저장하고 관리하지 않습니다. 세션 정보나 쿠키 정보를 별도로 저장하고 관리하지 않기 때문에 API 서버는 들어오는 요청만을 단순히 처리하면 됩니다. 때문에 서비스의 자유도가 높아지고 서버에서 불필요한 정보를 관리하지 않음으로써 구현이 단순해집니다. - Self-descriptiveness 자체 표현 구조 REST API 메시지.. 2021. 2. 25.
알고리즘 Stack, Queue, Deque, Heap 정적인 메모리 : 컴파일할 때 메모리를 할당받고 시작한다 ex) 기본형 자료형 동적인 메모리 : 실행하는 런 타임에 메모리를 할당받는다 ex) 참조형 자료형 스택 Stack LIFO 후입선출의 구조 백트래킹, 인터넷 사용기록 보관 등이 스택을 사용하는 LIFO 구조를 갖고 있다 한쪽(TOP)에서만 데이터를 넣고 꺼낼 수 있다. 스택오버플로우: 정해진 크기의 스택에 계속해서 PUSH 하다 스택의 크기를 초과하여 더 이상 데이터를 추가할 수 없게 된 것으로 흔히 스택을 사용하는 재귀 함수 호출 시 많이 경험한다. 컴퓨터의 사칙 연산 계산에서 후위 표기법을 사용할 때도 스택을 활용한다. PUSH : 스택의 TOP에 데이터 추가 POP : 스택의 TOP의 데이터를 읽고 제거 PEEK : 스택의 TOP의 데이터를.. 2021. 2. 7.
메모리 구조 Code, Data, Stack, Heap 이번 포스팅은 메모리의 구조에 관한 포스팅입니다 www.tcpschool.com/php/intro과 기타 다른 문서를 참고하여 작성하였습니다 프로그램이 실행되기 위해서는 메모리에 로드(load)되어야 합니다 프로그램이 사용하는 변수들을 저장할 메모리도 필요합니다 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 1. 코드(code) 2. 데이터(data) 3. 스택(stack) 4. 힙(heap) 입니다 코드(code) 영역 메모리의 코드 영역은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 부릅니다 cpu는 코드영역에 저장된 명령어를 하나씩 가져가서 처리하게 됩니다. 프로그램이 종료될때까지 계속 유지되는 영역입니다 데이터(data) 영역 메모리의 데이터영역은 프로그램의 전역 변수.. 2021. 2. 7.
프로세스와 쓰레드의 차이 프로세스와 쓰레드의 차이(Process vs Thread) - 프로세스 - 사전적 의미 1. 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 2. 메모리에서 실행되고 있는 프로그램의 인스턴스(독립적인 객체) 3. 운영체제로부터 시스템 자원을 할당받는 작업의 단위 동적인 개념으로는 실행된 프로그램을 의미하기도 한다 시스템 자원 - CPU 시간 - 운영되기 위해 필요한 주소 공간 - Code, Data, Stack, Heap의 구조인 독립된 메모리 영역 특징 1. 프로세스는 각각 독립된 메모리 영역을 할당받는다 2. 기본적으로 프로세스당 최소 한 개의 쓰레드를 보유한다 3. 각 프로세스는 별도의 주소 공간에서 실행된다 4. 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다 5. 프로세스가 .. 2021. 2. 4.
프레임워크와 라이브러리의 차이 프레임워크는 뼈대나 기반구조를 뜻하고, 제어의 역전 개념이 적용된 대표적인 기술입니다 소프트웨어에서의 프레임워크는 소포트웨어의 특정 문제를 해결하기위해서 상호 협력하는 클래스와 인터페이스의 집합 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야 한다 프레임워크 특징 - 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성 - 추상적인 개념들이 문제를 해결하기 위해 작업하는 방법을 정의합니다 - 컴포넌트들은 재사용이 가능합니다 - 높은 수준에서 패턴들을 조작할수있습니다. 라이브러리의 특징 -단순 활용 가능한 도구들의 집합 -개발자가 만든 클래스에서 호출하여 사용, 클래스들의 나열로 필요할 클래스를 호출해서 사용 프레임워크와 라이브러리의 차이점 프레임워크와 라이브러리의 차이는 제어 흐름.. 2021. 1. 16.
728x90