전체 글

· React
문법 문제 페이지에 접속할때 initializeClickExampleAndSubmitAndAnswer액션과 getGrammarById액션이 2번씩 반복되고 있었습니다. getGrammarById는 서버에 Grammar 조회를 요청하는데, 이로인해 서버에서 동일한 grammar 조회 쿼리가 2번 발생하고 있었습니다. 원인을 파악하고자 하나의 라우터에서 순서대로 실행되는 GrammarBookPage > GrammarBookContainer > GrammarBook > GrammarContainer 컴포넌트들을 뜯어봤습니다. 자세히보니 GrammarBookPage가 매핑된 라우터의 URL로 직접 접속하거나 새로고침해도 액션들이 한 번씩 더 디스패치되고 있었습니다. GrammarBookContainer컴포넌트에..
· Springboot
오류 발견 아래 코드를 테스트하던 중 LazyInitializationException이 발생했습니다. public GrammarBookResponseDto getUserWrongGrammarBook(String userName, String grammarBookName) { Long userId = getUserIdByUserName(userName); List userGrammarStatuses = this.userGrammarStatusRepository.findByUserId(userId); Long grammarBookId = this.grammarBookService.getGrammarBookIdByGrammarBookName(grammarBookName); List grammarDtos = ..
· React
오류 발견 리액트 앱 실행시 콘솔창에 다음과 같은 오류 로그가 나타납니다. A non-serializable value was detected in an action, in the path: `register`. Value: ƒ register(key) { _pStore.dispatch({ type: _constants__WEBPACK_IMPORTED_MODULE_2__["REGISTER"], key: key }); } 오류 원인 로그만 보면redux는 state, action에 직렬화가 불가능한 값을 전달할 수 없어 발생하는 오류입니다. 하지만 기능은 정상적으로 작동합니다. 더 찾아본 결과, redux-persist의 고유 문제인것 같습니다. non-serializable value error · Is..
· Springboot
문제 상황현재 Grammar와 GrammarBook를 N:1 양방향 연관관계로 설정한 상태입니다. 그래서 GrammarBook에 다음과 같이 mappedBy 설정으로 GrammarBook은 연관관계의 주인이 아님을 명시해뒀습니다.@OneToMany(mappedBy = "grammarBook", cascade = CascadeType.ALL) @OrderColumn(name = "id") private List grammars = new ArrayList();그리고 GrammarBook엔티티 객체에서 grammars로 size()를 호출하니 수많은 Grammar엔티티 값과 함께 수많은 null값이 채워져 반환되었습니다. [null, null, null, null, null, null, null, null,..
· Springboot
UserGrammarStatus와 SiteUser는 N : 1 단방향 연관 관계를 맺고 있습니다.UserGrammarStatus 엔티티에서 referencedColumnName = "user_name"를 지정해주어 SiteUser 테이블의 userName 컬럼을 참조하게 했습니다.//UserGrammarStatus ... @ManyToOne @JoinColumn(name = "user_name", referencedColumnName = "user_name") private SiteUser user; ...그리고 userName값으로 UserGrammarStatus를 조회하는 JPQL을 직접 작성했습니다.//UserGrammarStatusRepository ... @Query("select ugs fro..
· Springboot
문제 상황 GrammarBook 엔티티 한 개를 조회할때 Grammar를 fetch join하고 Grammar안에서 GrammarExample도 fetch join하는 한 방 쿼리를 JPQL로 작성했습니다. //GrammarBookRepository.java @Query("select gb from GrammarBook gb join fetch gb.grammars g join fetch g.examples where gb.id = :id") Optional findGrammarBookById(@Param("id") Long id); 위 JPQL을 사용한 서비스 메서드를 테스트했더니 org.hibernate.loader.MultipleBagFetchException: cannot simultaneousl..
· Springboot
리액트와 스프링부트를 통합 빌드했기 때문에 스프링부트 테스트 시 항상 리액트 앱을 빌드했습니다. 이때문에 빌드 시간이 너무 오래 걸려 간단한 테스트에도 시간을 많이 뺐겼습니다. 그래서 build.gradle에 테스트할때만 리액트 앱을 빌드하지 않도록 설정을 추가했습니다.//build.gradle ... //테스트할때만 리액트 앱 빌드 안함 def skipReactBuild = project.hasProperty('skipReactBuild') tasks.matching { it.name in ['installReact', 'buildReact', 'copyReactBuildFiles'] }.configureEach { onlyIf { !project.hasProperty('skipReactBuild') ..
· Springboot
무슨 오류인가?리액트가 통합된 스프링부트 애플리케이션을 실행하고, 리액트에서 설정한 Route로 웹페이지 이동 후, 새로고침하면 Whitelabel Error Page가 뜸아래 오류는 http://localhost:8080/grammar로 접속후 새로고침시 나타난 오류Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Fri Jan 19 00:01:16 KST 2024 There was an unexpected error (type=Not Found, status=404). No static resource grammar. ...오류 발생 원인 분석개발 단..
· React
리액트를 공부하며 애플 홈페이지의 아이폰15 소개 페이지를 따라 만드는 중이다.애플에는 글자가 특정 스크롤 위치에 반응하며 fade in되는 애니메이션이 있다.아래 글을 참고해(+뤼튼) 스크롤시 특정 위치에서 fade in되도록 만들었다.https://shylog.com/react-custom-hooks-scroll-animation-fadein/ React Custom Hooks로 scroll animation 만들기 FadeIn편 | 수줍은 동그래 블로그해당 글은 김주성님의 세미나를 듣고 작성한 글 입니다. React Custom Hooks로 scroll animation 만들기 FadeIn편 작년에 React Hooks이 정식 릴리즈 된 이후 많은 사람들이 Hooks을 사용하고 있습니다. Hooks..
· Java
열거 타입(enumeration type)열거 타입(enumeration type)enum의 간단한 사용법만 소개합니다.한정된 값인 열거 상수(enumeration constant)중에서 하나의 상수를 저장하는 타입public enum 열거타입이름 {열거상수,...} 열거타입 변수 = 열거타입.열거상수; Week today = Week.SATURDAY; // today변수와 Week.SATURDAY변수는 같은 Week객체 참조 Week birthday = null;열거 타입을 선언하려면 열거 타입 이름으로 .java 소스 파일 생성해야함열거 타입의 이름은 첫글자 대문자열거 상수는 모두 대문자 또는 여러 단어일경우 _로 연결, 각 열거 상수는 객체이므로 열거 객체들의 필드 값은 열거 상수의 문자열임열거 타..
siwoli
siwoli