Backend

1. Grafana란?그라파나(Grafana)는 데이터 시각화 및 모니터링 도구로, 주로 시스템 및 애플리케이션의 성능을 모니터링하고 문제를 진단하는 데 사용됩니다. 또한 다양한 데이터 소스를 통합하여 대시보드 형태로 시각화 할 수 있어 많이 사용됩니다. 지금부터 Grfana를 어떻게 설치하고 사용하는지 알아보겠습니다. 2. Grafana 설치https://grafana.com/grafana/download?platform=linux 에서 자신이 설치하려는 인스턴스 환경에 맞는 명령어를 복사해 실행해 줍니다. sudo apt-get install -y adduser libfontconfig1 muslwget https://dl.grafana.com/enterprise/release/grafana-ente..
·Backend/spring
의존성 주입의 3가지 방법객체를 직접 생성하는 것이 아니라 외부에서 주입 받아 사용하는 것을 의존성 주입(DI)라고 합니다. 스프링에서는 다양한 의존성 주입의 방법을 제공하는데 각각의 방법에 대해 알아보도록 하겠습니다.1. 생성자 주입@Controllerpublic class MemberController { private final MemberService memberService; @Autowired //생성자가 1개만 있으면 생략해도 자동 주입(스프링 빈에만 해당) public MemberService(MemberService memberService) { this.memberService = memberService; }}@Controller@RequiredArgsConstructo..
·Backend/JPA
영속성 컨텍스트란? 영속성 컨텍스트는 엔티티를 영구적으로 저장하는 환경으로 엔티티 매니저로 엔티티를 저장하거나 조회시 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리하게 됩니다. 엔티티매니저 팩토리 : 엔티티 매니저를 만드는 곳 생성비용이 커서 한 개만 만들어 애플리케이션 전체에서 공유합니다. 여러 스레드가 접근해도 안전합니다. 엔티티 매니저 : 엔티티를 저장하고, 수정하고, 삭제하고 조회하는 등 엔티티와 관련된 일을 처리합니다. 또한 영속성 컨텍스트를 통해 데이터의 상태 변화를 감지하고 필요한 쿼리를 자동으로 수행해줍니다. 엔티티의 생명주기 비영속 : 엔티티 객체를 생성한 상태 Member member = new Member(); // 아직 저장되지 않음, 영속성 컨텍스트나 데이터베이스와는 아..
·Backend/JPA
JPA(Java Persistence API) JPA는 자바 진영의 ORM 기술에 대한 API 표준 명세이다. ORM(Object- Relational Mapping)은 무엇이고 왜 사용하는가? 객체 모델과 관계형 데이터베이스 사이에는 지향하는 목적이 다르고 기능과 표현 방법도 다릅니다. 이것을 패러다임 불일치 문제라고 하는데 이 문제를 해결하기 위해서는 수많은 시간과 코드들이 소비되게 됩니다. 패러다임 불일치 예시 1. 객체에는 상속이라는 기능이 있지만 테이블은 상속이라는 개념이 없다. 2. 객체는 참조를 통해 다른 객체와 연관관계를 가지고 참조에 접근해 연관된 객체를 조회하지만 테이블은 외래키를 사용해 다른 테이블과 연관관계를 가지고 조인을 사용해 연관된 테이블을 조회한다.(이 때 객체를 테이블에 맞..
·Backend/spring
API를 테스트하는 대표적인 도구로는 Swagger와 RestDocs가 있습니다. 이전에 프로젝트를 진행했을 때는 Swagger를 이용해 API를 문서화 했었는데 이번에 진행하는 프로젝트에서는 2가지의 이유로 Rest Docs을 이용해 API를 문서화 해보려고 합니다. Swagger는 프로덕션 코드에  설정이 필요하다.@RestController@RequiredArgsConstructor@RequestMapping("/users")public class UserController { private final UserService userService; private final UserAuthService userAuthService; @ApiOperation(value = "회원가입 AP..
·Backend/JPA
1. 문제점 Repository 계층을 @DataJpaTest를 이용해 테스트하다 아래와 같은 에러가 발생했다. 메시지를 보면 db에 반영될 때 자동으로 값을 주입해주는 auditing기능이 제대로 작동하지 않는 것을 알 수 있습니다. 이전에는 아래와 같이 @SpringBootApplication 위에 어노테이션이 위치해 있었다가 @EnableJpaAuditing @SpringBootApplication public class PracticeApplication { public static void main(String[] args) { SpringApplication.run(DosTicketApplication.class, args); } } config를 따로 분리 시켜줬는데 config가 적용되지 ..
·Backend/JPA
1. JPA Auditing프로젝트를 진행하다보면  Entity에 데이터를 언제 생성하고 수정했는지 보여주는 필드를 사용하는 경우가 많습니다.사용자가 데이터를 업데이트 하거나 생성할 때 시간 값을 직접 넣어주고 변경하는 것은 귀찮고 실수로 인해 놓치는 경우가 발생할 수 있습니다.이럴 때 JPA의 Auditing 기능을 이용하면 쉽게 이런 문제점을 해결할 수 있습니다.JPA는 Entity를 지켜보다 이벤트에 반응해 생성, 수정일자 값을 자동으로 넣어준다 (Auditing : 감사) 2. Auditing 기능 활성화하기@EnableJpaAuditing@SpringBootApplicationpublic class JpaApplication { public static void main(String[] args..
여포개발자
'Backend' 카테고리의 글 목록 (4 Page)