공부

1. 소프트 삭제(Soft Delete)란?소프트 삭제는 데이터를 실제 삭제하지 않고 삭제된 것으로 표시만 하는 방법입니다. 이는 데이터를 삭제한 후에도 복구하거나 삭제 시점을 추적할 수 있는 장점이 있습니다. 소프트 삭제를 구현하는 방법 중 하나는 데이터베이스 테이블에 isDeleted와 같은 플래그를 추가하고, 해당 값을 true 또는 1로 설정하여 삭제된 레코드를 표시하는 것입니다.2. Hibernate에서 소프트 삭제 구현Hibernate에서는 소프트 삭제를 쉽게 구현할 수 있는 기능을 제공합니다. 주로 **@SQLDelete**와 @Where 어노테이션을 사용하여 데이터를 물리적으로 삭제하는 대신, 논리적으로 삭제된 것으로 처리할 수 있습니다.3. @SQLDelete 어노테이션 사용@SQLDel..
구글 로그인 참고 링크https://velog.io/@bdd14club/%EB%B0%B1%EC%97%94%EB%93%9C-2.-%EA%B5%AC%EA%B8%80-%EC%86%8C%EC%85%9C-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0 스프링 부트 구글 소셜 로그인 구현하기해당 글은 아마란스💐가 작성했습니다.이번에 두레 서비스의 소셜 로그인 기능을 맡게 되어, 기능을 구현한 과정을 정리해보았습니다.구글 소셜 로그인을 구현한 다른 문서들을 참고하며 이해velog.io       전체 흐름클라이언트 - 'Google 로그인'부터 '인가 코드 전달'까지서버 - 구글 서버에서 인가코드를 전달받은 후부터 '서버 Access Token 반..
변수와 상수// 1. 변수// 반드시 초기화해야하는 것은 아님..let age = 27;console.log(age);age = 30;console.log(age);// 2. 상수// 한 번 선언되면 값을 바꿀 수 없기 때문에, 선언과 동시에 초기 값을 할당해야 한다.// 반드시 초기화가 되어야 함..// const birth = "1996.01.01";// 3. 변수 명명규칙(네이밍 규칙)// 3-1. $,_ 제외한 기호는 사용할 수 없다.let $_name;// 3-2. 변수의 이름은 숫자로 시작할 수 없다.let name1;let _2name;// 3-3. 예약어를 사용할 수 없다.// 자바스크립트가 이미 쓰고 있는 것.// let let// 4. 변수 명명 가이드let a = 1; // 이런건 ..
한/영 변환 기능을 구현하며 몇 가지 깨달음을 얻었다.처음에는 "화면이 내가 원하는 대로만 보이면 된다"는 생각으로 작업을 시작했다. 그래서 MUI에서 제공하는 컴포넌트 중 Breadcrumbs 디자인이 마음에 들어 선택해서 활용했다. 그러나 Breadcrumbs는 단순히 디자인 요소가 아니라 "내비게이션 경로"와 같은 순서를 내포하는 의미를 가지고 있었다. 예를 들어, 내폴더 > 다운로드 폴더처럼 사용자가 경로를 따라 이동하는 구조를 나타냈다.이를 통해 컴포넌트를 선택할 때 단순히 디자인만 고려할 것이 아니라, 해당 컴포넌트가 가진 의미와 역할까지 이해하고 활용해야 한다는 점을 깨달았다. 내가 구현하고자 했던 것은 단순히 한국어/영어 변환 기능으로, 사용자가 한국어나 영어를 선택할 수 있는 기능이면 충..
서버사이드 렌더링, 클라이언트 사이드 렌더링  SSR - 서버 사이드 렌더링- HTML 최종 결과를 서버에서 마늘어서 웹브라우저에 전달- 주로 정적인 화면에 사용- 관련 기술 : JSP, 타임 리프 -> 백엔드 개발자 CSR - 클라이언트 사이드 렌더링- HTML 결과를 자바스크립트를 사용해 웹 브라우저에서 동적으로 생성해서 적용- 주로 동적인 화면에서 사용, 웹 환경을 마친 앱 처럼 부분부분 변경할 수 있음- 예) 구글지도, Gmail, 구글캘린더- 관련 기술 : React, Vue.js -> 웹 프론트엔드 개발자 참고- React, Vue.js를 CSR + SSR 동시에 지원하는 웹 프레임워크도 있음- SSR을 사용하더라도, 자바스크립트를 사용해서 화면 일부를 동적으로 변경 가능
웹 서버(WEB), 웹 어플리케이션 서버(WAS) 웹 서버(Web Server)- HTTP 기반으로 동장- 정적 리소스 제공, 기타 부가기능- 정적(파일) HTML, CSS, JS, 이미지, 영상- 예) NGINX, APACHE$   웹 어플리케이션 서버(WAS : Web Application Server)- HTTP 기반으로 동작- 웹 서버 기능 포함 + (정적 리소스 제공 가능)- 프로그램 코드를 실행해서 애플리케이션 로직 수행     - 동적 HTML, HTTP API(JSON)     - 서블릿, JSP, 스프링 MVC- 예) 톰캣(Tomcat), Jetty, Undertow  웹 서버 vs. 웹 애플리케이션 서버(WAS)- 웹 서버는 정적 리소스(파일) / WAS는 애플리케이션 로직- 둘의 용어..
https://songkg7.tistory.com/81 @JsonNaming 사용 (springboot 2.5.3 ~)영화 정보를 가져오는 OMDb API 를 사용해보던 중에 DTO로 정보를 처리하고 있었다. 이 과정에서 약간의 문제가 있었는데, 평소 나는 camelCase 방식을 사용하여 프로젝트를 작성하지만 api에서는 앞글songkg7.tistory.com위의 게시글을 그대로 가져왔습니다..    영화 정보를 가져오는 OMDb API 를 사용해보던 중에 DTO로 정보를 처리하고 있었다.이 과정에서 약간의 문제가 있었는데, 평소 나는 camelCase 방식을 사용하여 프로젝트를 작성하지만 api에서는 앞글자를 대문자로 JSON 데이터를 제공하고 있다.{ "Title": "Frozen", "Year..
@NotFound(action = NotFoundAction.IGNORE) 와 @NotFound(action = NotFoundAction.EXCEPTION) 이렇게 두가지가 있다. 먼저 IGNORE 옵션은 아래 설명에도 나와 있듯이 존재하지 않더라도 무시하는 것이고 EXCEPTION 옵션은 EntityNotFoundException을 발생시킨다. EXCEPTION 옵션을 설정하지 않았더라도 해당 옵션이 디폴트 값이기 때문에 따로 설정하지 않으면 Exception이 발생하는 것이다.  그러니 해당 예외를 발생시키지 않고 싶다면 IGNORE 옵션 설정을 해주자. 디버깅을 해보면 해당 엔티티에 다음과 같이 exception이 발생했다고 알려준다. @NotFound(action = NotFoundAction...
https://pixx.tistory.com/391   @SQLDelete(sql = "UPDATE AST_ATTR_ELEMENTS SET IS_DELETED = 1 WHERE AST_ATTR_ELEMENT_ID = ?")@SQLRestriction("IS_DELETED = 0")  개요이번 프로젝트에서는 모든 조회 및 검색에서 is_deleted가 false인, 즉 논리적으로 삭제되지 않은 데이터만을 처리하도록 요구하고 있습니다. 이를 해결할 수 있는 방법은 다양합니다. 예를 들어, 단순히 Repository에 조건을 추가하는 방법, @Query 어노테이션을 활용하는 방법 등이 있습니다. 하지만 이번 기회에 새롭게 알게 된 @SQLRestriction 어노테이션에 대해 공부한 내용을 정리하고자 합니다...
스프링 부트 JPA - @PrePersist, @PreUpdate 개념@PrePersist 및 @PreUpdate는 Entity가 Persist(데이터베이스에 삽입) 또는 Update(데이터베이스에 수정)되기 전에 JPA Provider가 자동으로 실행해야 하는 메서드를 지정하는 데 사용되는 JPA(Java Persistence API)의 어노테이션(Annotation)입니다.​@PrePersist@PrePersist 어노테이션은 Entity가 영속화되기 직전에 실행되어야 하는 Entity 클래스의 메서드를 표시하는 데 사용합니다. 이 메서드는 Entity가 데이터베이스에 저장되기 전에 JPA Provider에 의해 자동으로 호출됩니다.​@PreUpdate@PreUpdate 어노테이션은 데이터베이스에서 ..
sesam
'공부' 카테고리의 글 목록