Framework
Failed to load plugin 'prettier' declared in '.eslintrc.js': Cannot find module 'eslint-plugin-prettier'
1. node_modules 폴더랑 package_lock.json 삭제 후 npm install & npm start 다시 해봤지만 소용 없음.. 2. 노드 버전 문젠가 싶어서 12로 낮췄지만 소용없음.. 3. 그 와중에 nvm 말 안들어서 cmd 관리자권한 실행해서 깔았는데 node 버전까진 잘 되더니 vscode 터미널에서 npm install했더니 또 에러 뜨고 소용 없음.. 35995 error code ELIFECYCLE 35996 error errno 1 35997 error core-js@3.26.0 postinstall: `node -e "try{require('./postinstall')}catch(e){}"` 35997 error Exit status 1 35998 error Fail..
How to set java.home at vscode with MacOs
windows 환경은 c://로 시작하는 패스 예시가 많이 있는데 맥에서는 구체적인 예시 찾기가 어려웠어서 기록. it was hard to find an example how to set java.home path with mac. you can find some example with windows env, but not with mac in google. terminal에서 조회할 때에는 /usr/libexec/java_home -V 명령어를 사용하면 결과물이 아래와 같이 나온다. enter command /usr/libexec/java_home -V in terminal and you will get the next lines as the answer. Matching Java Virtual Ma..
Module '"react"' has no exported member 'useState'
Module '"react"' has no exported member 'useState' Module '"react"' has no exported member 'useRef' Module '"react"' has no exported member 'useEffect' react의 버전과 @types/react의 버전이 다를 때 문제가 생길 수 있다. apache echart를 설치하다가 @types/react를 설치해야 한다길래 따라했다가 낭패를 보았다. 버전을 다운그레이드 한 모양이다. Hooks는 React 16.8.0 버전 이상에서만 사용 가능하다. Hooks are only available in React 16.8.0 and up. https://stackoverflow.com/questio..
Swagger 오류: Unable to infer base url. ...
새로 진행하는 프로젝트에서 swagger 설정을 해보았는데 아래와 같은 오류가 발생했다. 설정 오류라 얼럿으로 팝업이 출력되면서 swagger-ui.html화면으로 연결이 안 되는 현상. Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway. The base url is the root of where all the swagger resources are served. ... (후략) @EnableSwagger2 어노테이션을 Config클래스에 달아라, 메인클래스에 달아라, 버전을 2.9.2로 낮춰라, 스프링 시큐리티와 설정 충돌 문제다 등등..
오류: 기본 클래스 " "을(를) 찾거나 로드할 수 없습니다.
패키지명에 오타가 나서 리팩토링 후 기본 클래스 로드 불가 에러 메시지가 뜨는 경우. 캐시삭제, .gradle 폴더 삭제, 프로젝트 리빌드 다 소용없고.. Menu > Run > Edit Configurations > Run/Debug Configuration > Main class:를 변경한 클래스명과 동일하게 수정하면 바로 적용된다...
Configuration error (css, js 파일이 Servlet을 타서 발생하는 오류)
입사 후 과제를 하던 도중 css파일에 대한 mapping이 없다는 오류가 자꾸 뜨기 시작했다. Spring Security와 interceptor 설정을 하다가 발생했다. 로그인 인터셉터를 설정하고 싶었는데... 아래 컨피그 클래스 소스에서 Configuration Annotation을 지우면 문제 없이 돌아가지만 인터셉터가 작동하지 않고, 반대의 경우엔 인터셉터를 포기하고 css를 정상적으로 읽어오는 상황. @Configuration public class CustomWebMvcConfigurer extends WebMvcConfigurationSupport { @Override //로그인 인터셉터.. protected void addInterceptors(InterceptorRegistry regi..
스프링 빈과 의존관계 - 자바 코드로 직접 스프링 빈 등록하기
설정파일 별도로 만들 때 Service, Repository에 어노테이션 없이 설정파일에서 별도로 등록해주는 방법이다. XML로 설정하는 방법도 있는데 현재는 잘 사용하지 않는다. DI에는 필드 주입, setter 주입, 생성자 주입 3가지 방법이 있다. 의존관계가 실행중 동적으로 변화하는 경우가 거의 없으므로 생성자 주입을 권한다. 처음에 앱이 조립될때 생성자로 한번만 들어오고 끝남. 필드 주입은 바꿀 수 있는 방법이 없어서 좋지 않다. 상황에 따라 구현 클래스를 변경해야 하면 스프링 설정 파일을 이용해서 변경한다. package hello.hellospring; import hello.hellospring.repository.MemberRepository; import hello.hellospring..
회원 관리 예제 #04 회원 서비스 테스트
확실히 스프링 레거시로 프로젝트를 진행해보고서 하니까 이해가 빨리 되는 거 같다. 뒷부분엔 전혀 모르던 JPA같은 개념들이 나오니까 그 부분에선 시간이 좀 더 걸릴지도 모르겠지만 이대로라면 4월 중순이면 완강할 수 있지 않을까? 순서대로 코드만 나열. 주석으로 열심히 필기(?)해두었다. //처음에 자동완성된 코드 @Test void join() { } @Test void 회원가입() { //테스트 메소드는 과감하게 한글로 바꾸셔도 됩니다 } @Test void 회원가입() { //테스트 메소드는 과감하게 한글로 바꾸셔도 됩니다 //테스트는 아래의 3단계로 나눠진다. 아닐 때도 있지만 일단 이렇게 주석을 깔고 하는 방법을 권장함 //given: 이런 상황이 주어져서 - 이 데이터를 기반으로 하는구나 Mem..
회원 관리 예제 #03 회원 서비스 개발
디렉토리 구조 이제 Service 패키지를 만들었다. 여기서 비즈니스 로직을 구현한다. 코드 정리 먼저 멤버 레포지토리 객체를 생성한다. 서비스를 만들기 위해서 각종 메소드를 호출해와야 하기 때문에 클래스 내에서 공유될 객체다. 먼저 Optional 객체를 선언하여 사용한다. public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); //서비스를 만들려면 우선 repository가 있어야겠죠 /** * 회원 가입 */ public Long join(Member member){ //같은 이름이 있는 중복 회원X Optional result = memberRepository..
회원 관리 예제 #02 회원 리포지토리 테스트 케이스 작성
테스트케이스 코드를 코드로 검증한다. 개발한 기능을 실행해서 테스트 할 때 자바의 main 메서드를 통해서 실행하거나, 웹앱의 컨트롤러를 통해서 해당 기능을 실행한다. 이런 방법은 준비하고 실행하는데 오래 걸리고, 반복 실행하기가 어렵고 여러 테스트를 한번에 실행하기 어렵다는 단점이 있다. 자바는 JUnit이라는 프레임워크로 테스트를 실행해서 이러한 문제를 해결한다. 테스트 메소드는 서로 의존관계 없이 설계되어야 한다. 테스트가 하나 끝날때마다 공용 데이터를 클리어해줘야 한다. TDD: 테스트 클래스를 먼저 작성한 다음에 리포지토리를 작성하는 방법. 테스트 주도 개발방법이다. class MemoryMemberRepositoryTest { MemoryMemberRepository repository = n..