코딩 공부/web & Java129 [Spring / Vue] Spring과 Vue를 연동시 주소로 입력하면 오류나는 문제 Spring과 Vue를 연동시 주소로 입력하면 오류나는 문제Spring과 Vue를 연동하여 같이 실행되도록 하고 vue의 router-link를 통해서 페이지를 이동하면 문제가 없으나 주소창의 URL을 직접 입력하거나 새로고침을 할경우 404에러가 발생하는 문제가 생겼습니다.🏷️ 원인 SPA(Single Page Application)는 말 그대로 단일 페이지에 동적으로 내용을 변경하여 웹 페이지를 구성하게됩니다. SPA의 모든 경로는 결국 단일 페이지(index.html)로 향하게 되어있기 때문에 다른 경로에서 새로고침을 한다면 그 경로로 GET 요청을 보내는 것과 같기 때문에 404 해당 경로를 찾을 수 없는 에러가 발생하게 됩다. 즉, vue.js에서 라우팅을 통해 페이지 이동을 하지 않고 브.. 2024. 10. 3. [Java / TDD] 테스트 케이스 작성시 발생한 영속성 관련 오류 ✔️ 사용된 엔티티1. QuestionBoard@Getter@Setter@Table(name = "question_board")@ToString(callSuper = true)@Entitypublic class QuestionBoard extends AuditingFields { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; // UsreAccount와 연결 -> JoinColumn을 통해 user_id와 연결 @JoinColumn(name = "user_id") @ManyToOne private UserAccount userAccount; // 유저 정보 @Column(null.. 2024. 8. 28. [JWT] JWT 0.12.5 최신화 문제 해결 예전 공부할 때, 사용했던 JWT 및 Key 생성을 직접 사용해 보고 그때보다 좀 더 최신 버전을 사용하고 싶었습니다.public class JwtTokenUtils { // 토큰에서 username 가져옴 public static String getUserName(String token, String key) { return extractClaims(token, key).get("userName", String.class); } // 종료 시간 public static boolean isExpired(String token, String key) { Date expiredDate = extractClaims(token, key).getExpir.. 2024. 7. 20. [Java] 팩토리 메소드 팩토리 메소드팩토리(Factory)는 '공장'이라는 뜻을 가지고 있습니다. 일반적으로 클래스의 객체를 생성할 때, 생성자를 통해서 객체를 생성하지만 팩토리 메소드 라는 공장을 통해서 객체를 만들 수도 있습니다.public class User{ private String username; public Person(String username){ this.username = username; }}위에 코드는 Java로 객체를 작성할 때, 많이 사용하던 코드입니다.User user = new User("유저 이름");그리고 우리는 객체를 생성할 때, 위와 같이 생성자 호출을 통해서 객체를 생성했습니다. 그런데 우리는 생성자의 인자만 봐서는 이것이 유저 이름을 나타내는 것인지.. 2024. 7. 13. [JPA] N + 1 문제 N + 1 문제 연관 관계가 설정된 엔티티를 조회할 경우에 조회된 데이터 갯수(n) 만큼 연관관계의 조회 쿼리가 추가로 발생하여 데이터를 읽어오는 현상입니다. 🏷️ 예시 위와 같이 DB가 만들어져 있었을 때, EAGER(즉시 로딩)으로 한 경우와 LAZY(지연 로딩)으로 한 경우를 살펴보겠습니다. ✅ Fetch 모드를 EAGER(즉시 로딩)으로 한 경우 // User 엔티티 @Entity public class User { @Id @GeneratedValue private long id; private String firstName; private String lastName; @ManyToOne(fetch = FetchType.EAGER)// 즉시 로딩 @JoinColumn(name = "team_id.. 2024. 4. 23. [Spring] Proxy Proxy 프록시(Proxy)는 대리자 라는 뜻으로, 클라이언트가 사용하려고 하는 실제 대상인 것처럼 위장해서 클라이언트의 요청을 받아주는 역할을 합니다. 프록시는 실제 대상인 것처럼 위장함으로써 이를 사용하는 클라이언트는 구체 클래스를 알 필요가 없어집니다. 또한 프록시는 클라이언트의 요청을 받아서 원래 요청 대상에게 바로 넘겨주는 게 아닌, 다양한 부가기능을 지원할 수 있습니다. 여기서 원래 요청하려는 대상, 즉 최종적으로 요청을 위임받아 처리하는 실제 오브젝트를 타깃이라고 합니다. 🏷️ 프록시 패턴 프록시 객체가 객체를 감싸서 클라이언트의 요청을 처리하게 하는 패턴으로 접근 제어, 부가 기능 추가 등의 이유로 사용합니다. 원래 객체와 같은 interface를 구현해줘야 하고 객체를 주입받아 inte.. 2024. 4. 17. 이전 1 2 3 4 5 6 ··· 22 다음