일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 클린빌드
- 소셜로그인
- SQL
- ApplicationContext
- java
- 자바기초
- MySQL
- mariadb
- devcamp
- 인프런
- Oracle
- oauth
- RDBMS
- Spring
- 스프링의정석
- 국비지원
- cleanbuild
- 남궁성
- 쿼리
- 패캠
- 오라클
- 자바문제
- 불친절한SQL
- SpringFramework
- 자바의정석
- 기초쿼리
- 자바
- 자바연습문제
- 스프링
- 패스트캠퍼스
- Today
- Total
목록Spring (14)
Darren's Devlog
ObjectMapper은 데이터 포맷 중 하나인 JSON을 간편하게 POJO로 다룰 수 있는 기능들을 제공합니다. 또한 매우 Customizable하기 때문에 고도한 Object 처리를 가능하게 해줍니다. 오늘은 JSON → POJO로 변환하는 과정(Deserialize, 역직렬화)에서 발생한 InvalidFormatException을 해결할 수 있는 CustomDeserializer클래스를 만들어보겠습니다. 1. 시나리오 Book JSON [ { "name":"자바의정석", "reviewCount":"735" }, { "name":"토비의스프링", "reviewCount":"2,413" } ] BookDto @Getter @Setter public class BookDto { private String..
[OAuth 2.0] OAuth 개념과 구글 OAuth 세팅 및 로그인 스프링부트로 구현 해보기 -1 안녕하세요. 이번 게시글에서는 OAuth 2.0에 대한 간략한 개념과 스프링부트 환경에서 직접 구현해보는 단계까지 다뤄보도록 하겠습니다. OAuth, Open Authorization 정의 OAuth는 인터넷 사용자들이 비밀 darrenlog.tistory.com 이번 게시글은 1편에 이어 스프링 부트를 활용하여 유저의 이메일 정보를 받아오는 코드를 작성해 보도록 하겠습니다. 1. Authorization Code 발급 가장 먼저 해야하는 Authoriztion code 발급부터 테스트해보도록 하겠습니다. https://accounts.google.com/o/oauth2/auth?client_id=CLI..
안녕하세요. 이번 게시글에서는 OAuth 2.0에 대한 간략한 개념과 스프링부트 환경에서 직접 구현해보는 단계까지 다뤄보도록 하겠습니다. OAuth, Open Authorization 정의 OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. 유저가 특정 웹사이트(타 서비스)를 이용하려고 할 때, 자신의 회원정보를 기존에 이미 가입했던 구글, 네이버, 카카오 등에서 제공해주어 보다 안전하고 간편하게 회원가입 또는 로그인 처리를 돕는 프로토콜입니다. 비밀번호와 같은 나의 민감한 정보를 타 서비스에서 관리하도록 하는 것이 아니라 구글, 네이버, 카..
네이버 블로그에서 티스토리로 이전하는 중입니다. https://blog.naver.com/darren_gwon/222703634581 episode 3. 강의 똑같이 따라한거 같은데 JUnit테스트 통과가 안됩니다 ㅠㅠ 질문자분께서 JUnit을 활용한 TDD(Test Driven Development) 파트 강의를 제대로 따라한 거 같은데 테스트 통과가 안된다는 질문을 해주셨습니다. 원인파악 테스트 코드를 보아하니, 참조변수 boardDao의 null 체크를 하여 bean주입이 제대로 되었는지 안되었는지를 테스트하는 작업인 것을 확인할 수 있었습니다. 가장 먼저, @Autowired가 제대로 작동하여 bean 주입이 되는지 확인해야할 것 같아 BoardDaoImpl 클래스에 @Repository 애너..
네이버 블로그에서 티스토리로 이전하는 중입니다. https://blog.naver.com/darren_gwon/222697364351 episode 2. View를 변경했는데 반영이 안됩니다. 질문자분께서 HomeController와 home.jsp를 삭제하셨는데도 맵핑이 유지되어 있고, index.jsp를 불러오지 못한다는 질문을 하셨습니다. 문제해결 먼저, servlet-context에 default 주소를 "/"에 view로 index.jsp맵핑을 하도록 안내해드렸습니다. 하지만 이미 설정을 해 놓은 상태라고 하셔서 프로젝트 파일 구성을 확인해보았습니다. HomeController와 home.jsp가 제대로 삭제되어있는 걸 확인했습니다. 제거도 이미 제대로 되어있는 상태네요. default 주소..
네이버 블로그에서 티스토리로 이전하는 중입니다. https://blog.naver.com/darren_gwon/222695066772 안녕하세요. 종종 코드를 수정 후 배포를 해도 반영이 안되서 고생하는 경우가 있습니다. 잘 안되는 원인들 중 하나는 이전 빌드들의 캐시가 남아있어서 그렇습니다. 해결 방법은 Maven 프로젝트를 Clean 빌드 후 재배포하시면 대부분 해결이 됩니다. IntelliJ에서 프로젝트를 Clean 빌드 하는 방법을 알려드릴게요. 상단 탭에 View -> Tool Windows -> Maven 클릭 우측 탭에 Maven → 프로젝트 선택 → Lifecycle → clean → 우측 마우스 → Run Maven Build 프로젝트 클린 성공! 이제 프로젝트를 다시 ..
네이버 블로그에서 티스토리로 이전하는 중입니다. https://blog.naver.com/darren_gwon/222689697014 스프링의 정석 3-15을 수강하며 JUnit에서 TDD를 하는 중에 예상하지 못한 에러가 발생했습니다. java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125) at org.springframework.test.context.support.DefaultTes..
관심사(concern) = 해야할 작업 위 main()은 입력, 처리, 출력 크게 세가지의 관심사를 가지고 있다. 관심사의 분리는 OOP(객체지향) 5개 설계 원칙 SOLID 중 첫번째에 해당하는 단일책임의 원칙에 해당한다. SRP -하나의 메서드는 하나의 책임만 지도록 설계하는 것. 객체지향적으로 좋은 코드를 작성하기 위해서는 아래 원칙에 맞춰 코드의 분리를 잘 해주어야한다. 1. 관심사의 분리 2. 자주 변하는 코드와 자주변하지 않는 코드의 분리 3.중복코드의 분리 각 컨트롤러에 입력 부분이 공통적으로 반복되는 것을 확인할 수 있다. 스프링에서 입력하는 부분은 request.getParameter()으로 처리되는데 공동 코드이니 입력을 공통적으로 처리한 후에 컨트롤러로 보내주는 방식으로 관심사의 분리..
데이터는 크게 문자와 숫자로 구성되어있다고 할 수도 있다. 바이너리 파일도 '문자와 숫자'가 저장되어 있는 파일이다. 텍스트 파일은 '문자'로만 저장되어있다. 첫번째 사진처럼 바이너리 파일(JPG)이 깨지는 이유는, 숫자인 12를 문자로 강제로 변환하는 과정에서 일어난 문제이다. HTTP는 텍스트 기반 프로토콜이다. 그렇다면 텍스트만 전송이 가능한가? 라고 물었을 때, 그렇지 않다. MIME 타입을 지정하여 HTTP에 이미지, 동영상, 별도 첨부파일 등 텍스트가 아닌 바이너리 파일도 전송이 가능하다. Base64는 직역하면 64진법이라는 의미이다. A ~ Z: 26개 + a ~ z: 26개 + 0 ~ 9: 10개 총: 62개와 + / 문자 2개를 추가하여 총 64개의 문자로 데이터를 표현하는 방식이다. ..
프로토콜(Protocol)이란 서로간의 통신을 위한 약속, 규칙이다. 주고 받을 정보(데이터)에 대한 형식을 정의한 것이다. 실 생활 예) 편지 형식, 편지 봉투 데이터의 형식을 지정해주지 않으면, 데이터를 받아도 해석을 할 수 없기 때문에 데이터의 형식을 정하고 지켜주어야한다. HTTP(Hyper Text≒HTML Transfer Protocol)도 하나의 프로토콜이다. 1. 텍스트 기반으로 단순하고 읽기가 쉽다. 2. 상태를 유지하지 않는다(stateless) == 클라이언트 정보를 저장X == 요청자를 구별할 수 없다. 3. 내용을 확장 가능하다 - Custom Header 추가 가능 HTTP는 곧 편지와 비슷하다. 편지를 보낼 때 그 형식와 내용이 있고, 편지에 대한 답변을 받듯이 HTTP요청과 ..