분류 전체보기 37

InvalidDefinitionException

나의 프로젝트 시작 후 REST API를 만드는 과정에서의 첫 에러 등장! 에러 내용: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class com.hotelJava.accommodation.dto.AccommodationResponseDTO and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0]) at com.fasterxml.jackson..

Development/Error 2023.03.06

Git 협업을 해보자

1. 협업할 Repository를 Fork 떠서 나의 Repository로 가져오자 2. Fork 뜬 나의 원격 Repository에 있는 프로젝트를 Clone해서 나의 로컬 PC에 만들자 git clone {나의 Repository URL} 3. 원본 소스코드가 있는 곳의 위치(Upstream)를 미리 등록해주자 git remote add upstream {협업할 Repository의 URL} 4. 기능 단위 개발 작업을 위해 Branch를 따주자 git checkout -b {생성할 브랜치 명} 5. 코드 작업 후 Add, Commit 후 나의 Repository에 Push 해주자 git push origin {생성한 자신의 브랜치 명} 6. 본인 계정 깃허브 저장소에 접속해서 Compare & p..

Development/Git 2023.03.03

빌드 도구(Build Tool)와 Gradle

앤트(Ant) XML 스크립트를 기반으로 하고 최근에 나온 빌드 도구들과 달리 자동으로 라이브러리를 업데이트 하는 기능이 없기 때문에 현재는 주로 레거시 시스템에서만 사용되고 있다. 메이븐(Maven) 자바 프로젝트의 라이프 사이클(Life Cycle)을 XML 파일로 정의하여 빌드, 테스트, 배포 등을 자동화하는 빌드 도구 POM(Project Object Model)을 이용하여 프로젝트 정보, 라이브러리, 의존성 등을 정의하고 이를 기반으로 빌드 프로세스를 수행한다. 중앙 저장소(Central Repository)라는 중앙화된 라이브러리 저장소를 제공하여 필요한 라이브러리와 의존성을 쉽게 관리할 수 있다. 그래들(Gradle) 자바를 비롯한 다양한 언어로 작성된 프로젝트를 관리할 수 있는 Groov..

Development/Tool 2023.02.20

Git Pull Requests의 Merge 전략

Merge 브랜치에서 작업한 내용을 메인 브랜치로 통합하는 가장 일반적인 방법 장점: 이전의 커밋 히스토리를 그대로 유지하기 때문에 변경 이력이 정확하게 기록된다. 다른 브랜치에서 동시에 작업하는 경우 충돌이 발생할 수 있지만, 이를 강제하여 코드의 일관성을 유지할 수 있다. 단점: Branch가 많아지고 Commit도 많아지면 Commit History가 복잡해질 수 있다. Squash Merge 여러 개의 Commit을 하나로 합친 후 Merge하는 전략 장점: Merge Commit이 남기 때문에 Merge가 되었다는 사실을 알 수 있다. Commit History가 깔끔해진다. 단점: Merge된 브랜치의 변경 내역이 하나의 Commit으로만 남기 때문에 어떠한 과정으로 변경되었는지에 대한 Hi..

Development/Git 2023.02.19

Git 기본 명령어 정리

fetch git fetch --all: 모든 원격 저장소 정보를 동기화 한다. git fetch [branch]: remote를 지정하면 특정 remote의 변경 내용을 동기화하며, branch가 지정되면 특정 브랜치 정보만 동기화 한다. remote -> branch commit git commit -am "커밋 메시지": 워킹 트리에서 작업한 것을 add(스테이징 에어리어)로 옮김과 동시에 commit(로컬 저장소) + 커밋 메시지 등록 git commit --amend: commit 까지 완료하고 push 하기전에 커밋 메시지를 변경할 수 있다. push git push : local 브랜치로 가서 모든 커밋들을 수집합니다, 그다음 origin/ 브랜치로 가서 이 브랜치에 부족한 커밋들을 채워 넣..

Development/Git 2023.02.18

스레드의 종류

컴퓨터를 구성하는 하드웨어(CPU, Memory, Devices)와 하드웨어를 관리하고 컴퓨터 시스템 전반을 관리하는 OS(커널)가 있고 우리가 개발한 프로그램(Application)은 운영체제를 통해서 하드웨어를 사용하게 된다. 하드웨어 스레드 OS 관점에서는 가상의(logical) 코어 인텔에서는 hyper-threading이라고 브랜딩하였다. -> 물리적인 코어마다 하드웨어 스레드가 두 개 예) 싱글 코어 CPU에 하드웨어 스레드가 두 개라면 OS는 이 CPU를 듀얼코어로 인식하고 듀얼 코어에 맞춰서 OS 레벨 스레드들을 스케줄링 한다. OS 스레드(네이티브 스레드 == 커널 스레드 == 커널-레벨 스레드 == OS-레벨 스레드) OS 커널 레벨에서 생성되고 관리되는 스레드 CPU에서 실제로 실행..

Development/OS 2023.02.12