Development/TrobleShooting
Boolean true == "true"가 가능할까요?
최근 제출을 목적으로 풀스택으로 웹 시스템을 개발했다. 그렇게 제출 2시간 전, 마지막 테스트를 하고 있던 와중, 어마어마한(?) 버그를 발견하게 되었다...... 바로 체크박스 check / uncheck가 ajax로 유지되지 않는다는 것...!원래는 잘 동작했던 기능이었기에, 도대체 뭐가 문제지 하고 식은땀이 주르르르르르르륵 났던 것 같다...결과적으론 버그를 찾아서 해결했지만,,정말 식겁한 순간이었던 것 같다...ㅠㅠㅠㅠㅠ 다시는 이런 문제를 일으키지 않기 위해 블로그에 가볍게 정리해보려고 한다. 1. 배경구현하고자한 내용을 간단히 설명하자면, 위 사진처럼 체크 박스 이벤트에 의해 DB에 체크여부를 저장하는 로직을 구현해야 했었다.체크를 클릭하면, DB에 is_checked 칼럼이 true, unc..
[Gasip Project] JPA / could not initialize proxy - no Session.
잘만되던 CRUD가 갑자기 안되기 시작했다. DB에 저장된 정보 불러오기(Get)을 할 때 이런 문제를 발견했다. 1. 문제 정의 아니 왜 안돼??? 젠장 또 에러메시지야.. LazyInitializationException : could not initialize proxy - no Session 즉, 프록시를 시작할 수 없다 그말씀이시네요. 프록시 문제인 것을 보니 아무래도 JPA 연관관계 매핑에서 오류가 난 듯하다. 2. 해결방안 접근 JPA 연관관계 매핑을 해 둔 엔티티로 가보자. 현재 Professor - Major 가 1:1 연관관계를 맺고 있다. (Professor가 major_ID 를 FK로 갖고 있는 구조다) 아무래도 위 사진에서 major 객체를 OneToOne으로 연관관계 매핑해줄 때..
[Gasip Project] 왜 Column Name이 중복이라고 뜨죠? _ DuplicateMappingException
오늘도 어김없이 찾아온 Error 메시지.(그만) 자세히 읽어보니 아래 친절히 알려주는 에러 메시지님. Failed to initialize JPA EntityManagerFactory: Table [prof] contains physical column name [major_id] referred to by multiple logical column names: [major_ID], [majorId] 예? 아니 제가 뭘요...? 제가 한 설정이라곤 1. 테이블에 맞게 엔티티 클래스 생성 2. Major 테이블 : Prof(프로페서) 테이블 = 1 : 1 매핑 Prof 테이블이 major_ID를 FK로 갖고 있으므로, @OneToOne&@JoinColumn을 prof 테이블에 달아줬다. 난 잘못한게 없는..
[Git] Push가 안되는 이유는? git remote : Permission to ---The requested URL returned error: 403
1. 문제 정의 403에러가 발생했다. 해결방법을 찾기 전, 내가 무엇을 빠뜨렸는지 차근차근 되돌아보자. 1. 깃허브 url 가져와서 인텔리제이에 연결도 했고, 2. Manage remotes 도 설정해놨고 3. develop 브랜치에서 new branch해서 새로운 브랜치 만든 상태이고..(여기까진 로컬 저장소이고) 4. 커밋하고 푸쉬만 한다면 원격 저장소인 깃허브에 자동으로 브랜치가 생성되어야 하는데?!?!?! 2. 해결방안 접근 1) remote 경로 재설정 혹시나 해서 remote 경로를 재설정해줬다... 그러나 아무일도 일어나지 않았다. 2) Githun Token 재설정 찾아보니, 내 Github Token이 만료됐다는 걸 확인할 수 있었다!!! (배경에서 놓쳤던 부분) 얼른 깃허브에 가서 토..
@Autowired에 빨간줄이 그어진 이유
1. 문제 정의 고전적이지만, AppConfig 클래스를 따로 만들어서 mapRepository와 DBRepository를 수동 빈 등록을 해둔 상태이다.(2번째 그림) 근데 @Autowired를 사용할 때, 에러 표시로 빨간 줄이 뜬다. 더 웃긴건 스프링부트 서버 실행은 잘된다? 2. 해결방안 접근 1) 에러 메시지 확인1 예..? 해결 방안이 없다구요..? 2) 에러 메시지 확인 2 경고 내용을 볼 때, 자동 의존주입(Autowired)을 받기 위해서는 현재 클래스(DBService) 또한 마찬가지로@Component,@Service 등의 어노테이션을 통해 스프링 빈으로 등록되어 있어야 한다고 한다. 3) 스프링 빈으로 정상 등록됐는지 확인 위처럼 AppConfig 클래스에 @Bean 애노테이션을 써..
인텔리제이 read-only가 안풀려서 도저히 코딩을 못하겠다.
진짜 갑자기 잘만 코딩하다가 read-only라는 메시지가 나를 가로막은 적이 있다. 분명 오른쪽 밑에 자물쇠도 열어놨는데,, 왜 decompiled .class file이라고 뜰까????? 생각보다 답은 간단했고 내가 멍청했다. (똥멍청이야!) 바보같이 out 디렉토리로 들어가니깐 안된다고 뜨지.... 꼭 src 디렉토리로 들어간 것을 확인하자!
인텔리제이에서 어노테이션 인식이 안되요
한동안 묵혀뒀던 프로젝트에 오랜만에 들어와봤는데,,,어노테이션이 안된다... 사실 해결방법은 간단하지만 아무도 나한테 말해주지 않았..... 나중에 당황하지 않기 위해 기록 차 블로그에 해결방법을 적어두려 한다. [해결방법] build.gradle에서 코끼리 눌러주기 라이브러리나 환경세팅이 변경됐을 경우 당연히 이버튼을 눌러줘야하는데, 지금이 그 경우다. 끝!