Gitcommitconvention Redux

Gitcommitconvention Redux

백엔드 Backend장고 Django Q. 장고Django에서 테스트 코드 작성 시 개발팀 내 관습convention으로 정해야 할 사항들은? 파이썬 계열 대표 테스트 팩키지. pytest 없이도 django에서 기본 제공하는 django.test로 테스트 가능합니다. pytest를 사용할지 말지 논의가 필요합니다. pytest를 활용하면서 장고django 테스트할 때 쓰는 팩키지 테스트 고정값fixture를 쉽게 만들 수 있도록 도와주는 팩키지. 장고 모델 바탕으로 바로 만들어줘서 유용합니다.

장고에서 테스트 고정값을 쉽게 만들 수 있도록 도와주는 팩키지. factoryboy와 비슷합니다. 내 경우 pytest, pytestdjango, factoryboy를 같이 쓰고 있습니다.


imgCaption0
reduxhooks

reduxhooks

redux에서 사용할 수 있는 hooks로는 useSelector와 useDispatch가 있습니다. 1useSelector State에서 특정 값을 가져와서 보여주고 싶을 때 사용합니다. 기존에는 props로 state를 넘겨주어 console.logstate와 같은 형태로 상태 값을 출력했다면, useSelector로 다음과 같이 state를 꺼내와서 사용할 수 있어요. const state useSelectorstate state 이렇게 state 그대로 꺼내올 수도 있고const state useSelectorstate state.itemReducer 이렇게 약간 다르게 꺼내올 수도 있습니다.

2useDispatchdispatch 함수를 반환하는 메서드입니다.

스택 프레임 저장

x5i 명령어로 callee 함수 도입부를 살펴보면, 가장 먼저 push rbp를 통해 호출자 caller의 rbp를 저장하고 있습니다. rbp는 스택 프레임의 가장 낮은 주소, 즉 가장 상단을 가리키는 포인터입니다. 따라서 callee 함수 실행 전, 가장 상단에 위치하는 스택인 caller의 스택 프레임 주소를 현재 rbp가 가리키고 있다고 보시면 됩니다. ush를 통해 rbp 주소를 스택에 쌓아주고 있으므로, callee 함수에서 반환될 때 caller의 스택 프레임으로 돌아갈 수 있어요.

si 명령어로 push rbp를 실행하고, 스택을 검토해보시면 rbp 값caller의 스택 프레임 주소인 0x7fffffffe070이 저장된 것을 확인할 수 있어요.

Store

store란 어플리케이션의 global state전역 상황을 저장해두는 공간을 말합니다. store 또한 JavaScript 객체 중 하나인데 다른 global object들과 다른 독특한 함수와 기능을 지닌다. 리덕스 store를 다룰 때, 직접적으로 state를 변경해서는 안됩니다. 그 대신 action 객체에 어플리케이션에서 어떤식으로 작동해야하는지를 만들어 놓고 이 액션객체가 스토어에 어떤 일이 일어났는지 전달합니다.

액션이 dispatch되면 store는 root reducer를 실행하고, 액션을 기반으로 기존의 상태로부터 새로운 상황을 계산합니다. 결과적으로 store는 subscribers에게 UI가 새 데이터로 업데이트 될 수 있도록 상태가 업데이트 되었음을 알린다.

1 checkStyle 적용

처음 Settings Plugins로 이동해서 checkstyle을 검색해 플러그인을 다운받습니다. 설치후에는 재시작을 해주셔야 합니다 재시작을 하시면 아래 이미지처럼 Settings Tools Checkstyle탭이 생성되어 있습니다. Scan scope를 All sources including tests로 설정해 모든 소스코드에 관해 코딩컨벤션을 검사하도록 합니다. Treat Checkstyle errors as warnings를 체크해 컨센션을 어기면 경고나 에러를 발생시키도록 설정합니다.

버튼을 눌러 방금 다운받은 rules.xml을 찾아 discription을 입력하고 next로 넘어갑니다 여기에 navercheckstylesuppressions.xml를 입력해줍니다.

Prettier

Prettier는 일정한 코드 서식을 유지하기 위해 제작된 확장프로그램이며, 이 프로그램은 eslint와 같은 연결프로그램이 없을 때는 확장프로그램만 있어도 정상적으로 동작하지만 eslint와 같은 코드 검사 툴이 있을 때는 반드시 둘을 연결하는 플러그인을 설치해주어야 합니다. 이에 대한 설치는 위의 eslint 확장프로그램 설치에서 진행했습니다. 정상적으로 설치되었다면 아주 자잘한 스타일링 코드까지 경고를 할텐데, 파일이 세이브될 때마다.

lint가 수정가능한 부분을 자동적으로 수정해주는 방법이 있습니다. 본인은 이를 부트캠프에서 제공하는 양식으로 진행했으나, 구글링을 통해 찾아보니 아래의 블로그에서 제공하는 설정방법도 좋은 방법이 되는 것 같아 공유하고자 합니다.

자주 묻는 질문

reduxhooks

redux에서 사용할 수 있는 hooks로는 useSelector와 useDispatch가 있습니다. 구체적인 내용은 본문을 참고하시기 바랍니다.

스택 프레임 저장

x5i 명령어로 callee 함수 도입부를 살펴보면, 가장 먼저 push rbp를 통해 호출자 caller의 rbp를 저장하고 있습니다. 더 알고싶으시면 본문을 클릭해주세요.

Store

store란 어플리케이션의 global state전역 상황을 저장해두는 공간을 말합니다. 좀 더 구체적인 사항은 본문을 참고하시기 바랍니다.