본문 바로가기
반응형

전체 글1261

Sanity Test란 Sanity Test란SW 개발과 품질 관리에서 사용되는 용어로시스템의 기본적인 동작이 정상적인지 확인하는 간단하면서 빠른 검사이는 복잡한 테스트 수행 전 기존 동작에 문제가 있는지, 기본적인 동작은 하는지 등 "정신이 멀쩡한(sane)" 상태인지 확인하는 것이라고 보면 된다. 전체 테스트를 하면 좋겠지만 시간이 오래걸리기 때문에 주로 특정 문제나 변경된 기능에 대해 초점이 맞춰져 있다.  When?• 변경 사항이 주요 로직을 망가뜨리지 않는지 확인• 빌드(Build) 성공 후 Regression Test할 가치가 있는지 확인• 특정 Bug Fix 후 재발되지 않았는지 확인 예를 들어, 로그인 기능을 수정하였을 때대소문자 구분, 캐시 기능, 아이디/암호 저장, 패스워드 찾기 등관련된 여러 기능을 같이 점.. 2024. 11. 20.
[Git 깃] 유용한 Alias 설정 목록 유용한 Git Alias[Git 깃] git alias에서 기본적인 Alias 설정에 대해 알아보았다.이외 어떤 유용한 Alias 설정들이 있을까?각자의 키워드에 맞춰서 설정하면 될 것 같다. [Git 깃] git alias별칭(Alias)를 통해서 비교적 긴 명령어를 쉽게 입력할 수 있다. 예를 들어 "checkout" → "co"로 피로감을 줄일 수 있다. config 파일 직접 설정 ~/.gitconfig 파일을 열어서 [alias] 부분에 커맨드 등록하는zoosso.tistory.com상세 로그 확인lg = log --oneline --graph --decorate --all 깔끔한 그래프 형식으로 모든 브랜치와 커밋 이력 확인 hist = log --pretty=format:"%h %ad | %.. 2024. 11. 19.
[Git 깃] 유용한 config 설정 목록 유용한 Git Config 목록git config에서 기본적인 설정을 살펴 보았다.이외 어떤 유용한 Git Config 설정들이 있을까? [Git 깃] git config💻 설정된 config 목록 확인 git config --list git config -l 더보기 전체 목록 확인 global 설정만 확인 git config --global --list local 설정만 확인 git config --local --list 💻 특정 항목 config 확인 git config {항목명}zoosso.tistory.com에디터 지정Commit log, Rebase 작업 등 Editor 지정할 수 있다.vim이 가장 무난한 편이다.git config --global core.editor vim  색상 강조C.. 2024. 11. 18.
[애자일/스크럼] 칸반 보드(Kanban Board) 칸반 보드란?칸반(Kanban)은 일본어로 "간판" 또는 "표지판"을 뜻하는데최초로 1940년대 일본의 도요타에서 개발한 생산 과정 방법 스크럼(Scrum)이나 애자일(Agile) 개발 방법론에서 작업의 시각적 관리 도구로 사용된다. 업무의 진행 상황을 명확히 보여주기 때문에 팀의 작업 흐름을 이해하고 개선할 수 있도록 돕는다.  📌 애자일과 워터폴 애자일과 워터폴프로젝트 수행에 있어서 개발환경, 비용, 기간, 규모, 숙련도, Risk 등 다양한 요인을 고려해서 최적의 개발 모델을 선택해야 합니다. : 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수 ※ SWzoosso.tistory.com 📌 Scrum 프레임워크란? 스크럼(Scrum) 프레임워크란?스크럼(Scrum)이란?• 제품과 서비스를 .. 2024. 11. 17.
[C/C++] packed 키워드 packed란구조체, 공용체, 클래스 메모리 정렬 방식을 제어하기 위해 사용 일반적으로 구조체 멤버들은 컴파일러에 의해 정렬된다. (alignment)= CPU 성능 최적화 위해 메모리 주소를 특정 크기(4 Byte, 8 Byte 등)로 맞추는 것 이러한 정렬은 메모리 사용량을 증가시킬 수 있다.이 경우 packed 속성으로 컴파일러에게 정렬을 무시하고멤버들을 바로 이어서 저장하도록 지시할 수 있다. 즉, 메모리 접근이나 공간적 측면에서 효율을 높일 수 있지만성능 손실이나 CPU 비정렬 데이터 접근 문제 초래할 수도 있다. [예시 코드 1]__attribute__((packed)) 또는 #pragma pack 사용하여 구조체를 packed로 설정할 수 있다.#include struct A { cha.. 2024. 11. 16.
[VS Code] 마크다운(Markdown) 설치해보기 VS Code Extension에서Markdown All in One 설치아래와 같은 형태로 [Install]오른쪽에 미리보기 창으로는 Ctrl + K 누르고 V 누르면 된다. 화면이 분할되면서 실시간 반영된다.Markdownlint같이 설치해주면 좋은 Extension으로 markdownlint는 문법적인 오류를 잡아주는 기능으로 생각하면 된다.예를들어 마크다운에서 링크 사용시 [] 이후 ()에 링크 주소를 적어야 하는데 아래와 같이 형태를 알려준다.[CTRL] + [SPACE]로 이미지나 링크 같은 여러 문법을 불러오는 것도 가능하다.  📌 마크다운(Markdown) 문법 마크다운(Markdown) 문법마크다운(Markdown) 이란? • 일반 텍스트 기반의 경량 마크업 언어이다. • 일반 마크업 .. 2024. 11. 13.
[디자인 패턴] GRASP 객체지향 GRASP 란• General Responsibility Assignment Software Patterns• 객체 지향은 책임 역할 각 객체에 부여하는 것 1) Information Expert2)Creator3)Controller4) Low Coupling5) High Cohesion6) Polymorphism7) Pure Fabrication8) Indirection9) Protected VariationsInformation Expert• 정보를 가지고 있는 객체에 역할을 부여하자 .• 객체는 데이터와 처리 로직을 함께 관리• 데이터를 감추고자 하면 내부에서만 로직을 처리하고 외부에는 기능만 제공  Creator• 객체의 context 알고 있는 다른 객체가 있다면 해당 객체에 생성 부여→ A 객.. 2024. 11. 12.
[운영체제] 스핀락 / 뮤텍스 / 세마포어 동기화 관리 필요성멀티 코어 시스템에서는 여러 프로세스가동시 실행하여 성능 향상 시킬 수 있다. 하나의 공유 자원을 여러 프로세스가 동시에 사용하면 문제가 발생할 수 있다. ex) 다른 한 개가 읽는 중간에 다른 하나가 값을 바꾸어 오류가 발생할 수 있다.  크리티컬 섹션'임계 영역(= Critical Section)' 으로 프로세스 동시 접근하는데 문제가 발생하지 않도록 한 번에 하나의 프로세스만 이용하도록 하는 것이다. 즉, 점유 하는 동안 다른 프로세스 접근을 제한한다.스핀 락 (Spin Lock)임계구역(critical section)에 진입 불가능할 때진입 가능할 때까지 루프(Loop) 돌며 재시도하는 방식 (Busy Waiting) Lock 걸려있다고바로 Context Switching 하지 .. 2024. 11. 11.
[C++] likely, unlikey 키워드 구문 [C++] likely, unlikey 키워드likely, unlikey는 컴파일러 최적화와 연관된 키워드 • likely | 컴파일러에게 참인 경우가 더 많을 것이라는 정보 제공하여 최적화• unlikely | 컴파일러에게 거짓인 경우가 더 많을 것#include int main(){ if (num == 1) { // ... } else { // ... }}  컴파일러 num 값이 "1"일 확률 그 외의 값일 확률에 대한정보가 없기 때문에 이를 최적화 하지 않는다.if문 성능 최적화를 위해서는 가장 많이 해당하는 분기조건을 상단에 두는 것이다.  이와 같은 방식으로number 값이 "1" 확률이 높다면 컴파일러에게 힌트를 줄 수 있다.#inclu.. 2024. 11. 10.
[C/C++] 패딩 비트 (Padding Bit) 패딩비트 (Padding Bit) 패딩비트란 사용하지 않는 비트 의미한다.구조체에서 가장 큰 자료형 크기를 따라간다.typedef struct{ int power; // 4 B int level; // 4 B char status; // 1 B} User;  int 4바이트, char 1바이트user구조체 크기는 9바이트 예상 된다.자료형 크기는 sizeof(자료형)로 알 수 있다.#includetypedef struct{ int power; int level; char status;} User;int main(){ User user; printf("power 크기 = %d \n", sizeof(user.power)); printf("level 크기 = %.. 2024. 11. 9.
반응형