목록개발/Spring (11)
그저 내가 되었고
로컬 디비가 다 날아가서...ddl-auto 옵션을 사용해야 할 상황이 왔다....(여담인데, 디비 버전 업그레이드는 왜이렇게 매번 힘든것인가?;;;;; 아나어제도 로컬 Mysql 버전 올리다가 에러나서 한시간 넘게 삽질하다가 결국 다 날리고 새로 깔았다.... 그랬더니 됨ㅎr 이제 어지간하면 디비 버전은 건드리지 않을 것 같다.......🥵) 신중, 또 신중해야 하는 작업이므로;; 라고는 하지만 일단 로컬/라이브 서버 application 설정 파일도 분리되어있고ㅋ 암튼 별 걱정 없이 none에서 update로 바꾸고 돌렸다.근데 에러를 뱉으면서 잘 안굴러가길래, '왜이래?' 하고 걍ㅋ create로 바꿔서 돌렸는데 이번엔 에러는 없고 걍... 먹통. 글서 update로 다시 바꾸고 에러를 확인했..
결론부터 말하자면 그대로는 안됩니다. 삽질 진짜 많이함... 그럼? 캐스팅(CONVERT 쓸거임)해서 할 수 있어요. 예를들어서, DB 짤때 '학교 코드(college)'를 'Integer'로 해서 짰다고 해봅시다. 이때 학교코드가 123이면 1만 검색해도 123이 나오게 하고 싶잖아요? 이게 like만 가지고는 안됩니다. 요컨대 1 List findAllByCollegeIdLike(Integer college); cs 이렇게는 안된다는 말임. 왜? like operator는 Integer같은 number형에는 안되거든...... 문자만 됩니다. 그럼 어떡하라고. 아래와 같이 날쿼리를 써야됩니다. 1 2 @Query("SELECT college FROM College college WHERE CONVER..
파라미터 설정 후, 필드 받기 & 안받기 둘 다 가능하게 하려면? * @RequestParam: Spring MVC에서 쿼리 스트링 정보를 쉽게 가져오기 위해 사용 e.g. /user?name=jade 이라는 요청에서 "jade" 이라는 값을 가져오기 위해 아래와 같이 컨트롤러를 구현하면 @GetMapping("/user") @ResponseBody public String getUserName(@RequestParam String name) { return name; } @RequestParam을 통해 name 변수에 "jade"라는 문자열을 받아 처리할 수 있음. But!!! 이대로라면 요청 쿼리 스트링에 "name" 필드가 없을 경우 즉, /user 와 같이 @RequestParam이 적용된 필드가..
현재 근무중인 회사는 API 명세서로 Spring Rest Docs를 이용하고 있습니다. 배포할 때 아예 Public ip로 배포되어 누구든지 언제 어디서든 볼 수 있었죠. '너무 공개된건 아닌가?' 하는 생각을 하던 와중, 해당 페이지에 OAuth2.0으로 Naver 로그인을 붙이라는 업무가 주어집니다. 그래서 처음에 OAuth를 붙이려 여러 방법을 시도해봤어요. 근데 안 되더란겁니다.... 애당초 OAuth를 붙일 로직이 없는데 어디에다가 어떻게 붙인단 말임... Spring Rest Docs는 API의 테스트 코드를 작성하면 그걸 기반으로 snippets을 만들고, 결국엔 만들어진 snippets을 갖고 API Docs를 자동으로 만들어주는 라이브러리입니다. OAuth는 애초에 붙일 수 없던거였슴...
Dependency, 의존관계란? “A가 B를 의존한다.”는 표현은 어떤 의미일까. 토비의 스프링에서는 다음과 같이 정의한다. 의존대상 B가 변하면, 그것이 A에 영향을 미친다. - 이일민, 토비의 스프링 3.1, 에이콘(2012), p113 즉, B의 기능이 추가 또는 변경되거나 형식이 바뀌면 그 영향이 A에 미친다. Dependency Injection은? 의존관계를 외부에서 결정하고 주입하는 것이 DI(의존관계 주입)이다. 토비의 스프링에서는 다음의 세 가지 조건을 충족하는 작업을 의존관계 주입이라 말한다. 클래스 모델이나 코드에는 런타임 시점의 의존관계가 드러나지 않는다. 그러기 위해서는 인터페이스만 의존하고 있어야 한다. 런타임 시점의 의존관계는 컨테이너나 팩토리 같은 제3의 존재가 결정한다. ..