728x90
반응형
[로드맵] Relational Database2024-11-18 09:28:28관계형 데이터베이스는 스키마를 사용하여 데이터 관계와 제약 조건을 정의하고 행과 열이 있는 구조화된 테이블로 데이터를 구성하는 데이터베이스 관리 시스템(DBMS)의 한 유형이다. 관계형 데이터베이스는 구조화된 쿼리 언어(SQL)를 사용하여 데이터를 쿼리하고 관리하며 데이터 검색, 삽입, 업데이트 및 삭제와 같은 작업을 지원한다. 관계형 데이터베이스는 키(기본 및 외래)와 제약 조건(예: 고유 및 null이 아님)을 통해 데이터 무결성을 강화하며 복잡한 쿼리, 트랜잭션 및 데이터 관계를 효율적으로 처리하도록 설계되었다. 관계형 데이터베이스의 예로는 MySQL, PostgreSQL 및 Oracle Database가 있다. 구조화된 데이터 저장, 강력한 일관성 및 복잡한 쿼리 기능이 필요한 애플리케이션에 일반..
Spring Data Jpa에서 새로운 Entity인지 판단하는 방법은 무엇일까요?2024-11-17 13:19:56새로운 Entity인지 판단하는 방법@Overridepublic boolean isNew(T entity) { if(versionAttribute.isEmpty()) || versionAttribute.map(Attribute::getJavaType).map(Class::isPrimitive).orElse(false)) { return super.isNew(entity); } BeanWrapper wrapper = new DirectFieldAccessFallbackBeanWrapper(entity); return versionAttribute.map(it -> wrapper.getPropertyValue(it.getName()) == null).orE..
[로드맵] GitHub / GitLab / Bitbucket2024-11-17 13:14:46GitHubGitHub는 Git을 사용한 버전 제어 및 협업을 위한 웹 기반 플랫폼이다.Microsoft가 소유하고 있으며, 소프트웨어 개발을 위한 호스팅을 제공하고 기본 Git 기능을 넘어서는 기능을 제공한다.GitHub에는 프로젝트 관리, 코드 검토 및 소셜 코딩을 위한 도구가 포함되어 있다. 주요 기능으로는 코드 저장을 위한 레포지토리, 변경 사항을 제안하고 검토하기 위한 풀 리퀘스트, 버그 및 작업을 추적하기 위한 이슈, 워크 플로 자동화를 위한 작업이 있다. 공개 및 비공개 레포지토리를 모두 지원하므로 오픈 소스 프로젝트와 비공개 개발에 인기가 있다.레포지토리 포킹 및 인라인 코드 주석과 같은 GitHub의 협업 기능은 팀 개발 밑 커뮤니티 기여를 용이하게 한다.광범위 한 통합과 대규모 사용자 ..
@ResponseBody(or ResponseEntity<T>) 가 있을 때와 없을 때의 동작 방식의 차이점을 말해주세요.2024-11-16 15:31:09@ResponseBody(or ResponseEntity)가 있을 때와 없을 때 차이점@ResponseBody 혹은 ResponseEntity 반환을 사용한다면, 스프링은 컨트롤러에서 반환된 값을 HTTP 응답 본문에 직접 씁니다. 이때 자바 객체를 자동으로 JSON이나 XML 등의 타입으로 직렬화합니다. 만약, 없는 경우에는 스프링은 반환값을 뷰 이름으로 해석합니다. 뷰 이름으로 해석한 이후에, 뷰 리졸버를 사용해 뷰를 찾고 응답합니다.(뷰에 전달할 모델이 있다면, 이를 뷰에 전달하고 응답합니다.)@ResponseBody와 ResponseEntity 반환 중 어떤 방식이 더욱 좋나요? 😀@ResponseBody를 사용하는 경우, 코드를 간결하게 유지할 수 있습니다. 하지만, 상태코드와 헤더를 유연하게..
[로드맵] Repo Hosting Services2024-11-16 15:27:53Repo 호스팅 서비스는 버전 제어 코드 저장소에 대한 저장, 관리 및 협업 도구를 제공하는 플랫폼이다. 이러한 서비스는 Git, Mercurial 또는 Subversion 과 같은 버전 제어 시스템을 지원하여 개발자가 코드베이스의 변경 사항을 관리하고 추적하며, 다른 사람과 협업, 워크플로를 자동화할 수 있도록 한다. 주요 기능에는 조종 분기 및 병합, 풀 요청, 문제 추적, 코드 검토 및 CI/CD(Dontinuous Integration / Continuous Deployment) 파이프 라인 과의 통합이 포함된다. 인기 있는 repo 호스팅 서비스에는 GitHub, GitLab 및 Bitbucket이 있으며, 각각 다양한 팀 규모와 프로젝트 요구 사항에 맞게 조정된 다양한 수준의 무료 및 유료 기..
@AllArgsConstructor 과 record 클래스의 차이2024-11-15 15:19:19아마 이 글을 읽는 사람들은 @AllArgsConstructor와 record를 왜 비교하는지 의문일 것이다.이 의문을 가지게 된 이유는 트러블 슈팅으로부터 시작된다. 트러블 슈팅 글을 보고 난 뒤, RequireArgsConstructor 가 final로 선언된 멤버 필드만을 포함한 생성자를 만들어주기 때문에 문제라면 모든 멤버 필드를 만들어 주는 @AllArgsConstructor는 돼야 하지 않을까?라는 의문으로 테스트를 해보았다 결론은 역시 실패하고 말았다.record 클래스도 기본 생성자를 생성하지 않는 것으로 알고 있는데 @AllArgsConstructor와 차이가 뭐지?? 라는 의문이 들어이유를 찾아보니 record 클래스는 애초에 컴파일러에서 기본 생성자가 없으면 자동으로 생성해준다고 한다..
[트러블 슈팅] 요청 값 Dto에 어떻게 매핑되는가2024-11-15 14:39:43문제 상황Controller@PostMapping("/save")public ApiResponse save(@RequestBody FcmTokenSaveRequestDto requestDto, @AuthenticationPrincipal UserDetails userDetails) { return ApiResponse.success(HttpStatus.OK, fcmTokenMemberService.save(requestDto, userDetails.getUsername()));} 문제 발생 DTO@Getter@RequiredArgsConstructorpublic class FcmTokenSaveRequestDto { private final ..
@ExceptionHandler 어노테이션은 무엇인가요?2024-11-15 09:34:04@ExceptionHandler란?@ExceptionHandler 어너테이션은 Spring MVC에서 컨트롤러(@Controller)나 전역 예외 처리를 위한 @ControllerAdvice 클래스의 메서드에서 발생하는 예외를 처리하는 데 사용되는데요. 이 애너테이션은 특정 예외를 처리하는 메서드를 지정하거나 메서드의 파라미터로 처리할 예외를 설정할 수 있습니다.어떤 방식으로 동작하나요? 🤔Spring MVC 애플리케이션에서 예외가 발생하면, DispatcherServlet이 적절한 HandlerExceptionResolver를 찾아 예외를 처리합니다. Spring에 기본적으로 등록된 HandlerExceptionResolver는 세 가지가 있으며, 각 리졸버는 우선순위에 따라 예외를 처리합니다. 그 ..
728x90
반응형