외부 api 연동하여 만들어야하는 기능 개발 중 항상 Test code로만 완성이 된 뒤 요청을 보내봤는데 이번에 터미널 crul을 통해 요청을 보내 정상적으로 작동되는지 확인해보았다. nhn cloud service 중에 카카오 비즈니스 알림톡을 연동하여 관리하고 사용할 수 있게 해주는 api가 있다. https://docs.toast.com/ko/Notification/KakaoTalk%20Bizmessage/ko/alimtalk-api-guide/#_2 API v2.2 가이드 - NHN Cloud 사용자 가이드 Notification > KakaoTalk Bizmessage > Alimtalk > API v2.2 Guide Alimtalk [API Domain] Domain https://api-a..
이 전 글에서 설명한 사용자 정의 (User-Defined) ClassLoader에 속한 3가지의 웹 로직(WebLoagic) ClassLoader를 알아보려한다. · EJB-JAR ClassLoader EJB를 JAR 형식으로 배포하게 되면 1개의 JAR마다 EJB-JAR ClassLoader가 생성된다. 즉 JAR을 5개 배포한다면 EJB-JAR ClassLoader도 5개가 생성되는 것이다. EJB-JAR ClassLoader는 부모 ClassLoader로 System ClassLoader을 가지고 있다. 여기서도 부모 ClassLoader의 Class 참조 여부에 대해 JAVA의 상속 관계와 비슷한 형태를 보인다. ? EJB (Enterprise JavaBeans) ? Enterprise 개발을 ..
ClassLoader가 어떻게 동작하는지 알고 난 뒤 바로 JVM을 정리하려다 ClassLoader의 종류가 여러 개라는 것을 알게 되었다. 처음에는 여러 가지의 ClassLoader 중 한 가지만 JVM에서 사용하는 줄 알았더니 여러 개를 사용한다길래 찾아보았다. 설명할 것이 가장 긴 계층적 특징은 맨 마지막에 설명할 예정이다. - 4가지 특징? - ClassLoader는 Java의 상속 관계와 닮았다는 느낌을 많이 받았다. 그 예시가 바로 계층적 특징과 가시적인 규약 특징 때문이었다. · 계층적 (Hierarchical) 코드를 구현하다 보면 중복을 줄이기 위해 상속을 사용하게 된다. 부모 Class를 가진 자식 Class처럼 ClassLoader도 계층적으로 생성이 가능하다. 바로 아래 이미지의 부..
JVM을 공부하다 보면 Class Loader라는 녀석을 발견할 수 있다. 도통 이것이 무슨 역할을 하는지 몰라 아래 링크를 참고하여 정리해보았다. https://goodgid.github.io/Java-Class-Loader/ - JVM 전까지의 순서 - 컴파일러는 .java File을 바이트 코드인 .Class File로 바꿔주는데 이것을 클래스 로더가 읽어오고, 클래스 로더 안에는 기본적으로 로딩, 링킹, 초기화 3가지를 통해 jvm의 각 영역에 저장한다. - 로딩 (Loading) - 클래스 로더는 .Class File을 읽어온 뒤 바이너리 데이터로 변경해준다. 바이너리 데이터로 변경된 것은 Method Area 영역에 Type 정보(Class, interface, enum), Method와 변수..
지금까지 실습한 결과 html 파일은 불러오지만, 그 외 js, css 등의 stylesheet 파일은 제대로 호출해오지 못했다. 이것을 알기 위해선 우선 html 파일을 볼 필요가 있다. 스승님께서 구현하신 index.html 파일에 들어가면 상단 Head에 css 외에 js 등 웹 페이지를 꾸미는데 필요한 파일 경로가 있다. 클라이언트가 /index.html을 호출하면 html 파일에 지정된 파일들의 개수만큼 n번의 쓰레드가 생성된다. 즉 index.html을 호출하는 요청 외에도 index.html을 이루는 파일 n개의 요청이 생성된다는 것이다. 그럼 도대체 왜 지금까지 아래 이미지와 같이 웹 페이지를 봤던 걸까? 그 이유는 바로 Header값에 있는 Content-Type으로 인한 것이다. 코드의..
특정 홈페이지에 들어가서 login을 하면 logout을 하기 전까지 계속 login이 된 상태 였거나, 브라우저를 다시 켰을 때 자동 로그인이 되는 것도 경험해봤을 것이다. 이런 기능을 할 수 있게 도와주는 것이 바로 Session과 Cookie다. Token이나 다른 것도 있지만 이번에 다룰 것은 Cookie 값을 할당하는 것이니 간략하게 내가 이해하고 있는 것을 기반으로 그림을 그려보았다. 자세한 내용은 다음에 다루기로 하고 이번에 기억해야 할 점은 'Session은 server에서 관리하고 Cookie는 클라이언트가 가지고 있는다' 는 점이다. - 어떻게 Cookie를 생성할 수 있을까? - Login이 실패하면 Cookie의 값은 false, 성공하면 true가 될테니 setCookie Meth..
전 글에서 200 ok와 302 Found의 차이를 알아보았다. 자세한 내용은 아래 링크로 들어가면 볼 수 있다. https://resian-programming.tistory.com/57 Request handler - 302Found Spring boot로 작업을 하다 보면 Controller에서 redirect를 이용해 원하는 곳에 요청을 보낼 수가 있다. HTTP에도 이와 비슷한 것이 있는데 바로 302 Found다. 위 사진은 Response의 Header에 200 OK를 보내고.. resian-programming.tistory.com - 회원가입 시 302 Found 적용하기 - 이제 코드를 실제로 구현하기 위해 response302Header라는 Method를 생성하고 200 OK와는 달리..
Spring boot로 작업을 하다 보면 Controller에서 redirect를 이용해 원하는 곳에 요청을 보낼 수가 있다. HTTP에도 이와 비슷한 것이 있는데 바로 302 Found다. 위 사진은 Response의 Header에 200 OK를 보내고 그 외 필요한 Header값을 넣어주고 있다. 그 후 Connection이 연결되면 동작하는 Method로 돌아와 확인해보니 ResponseHeader와 ResponseBody를 할당해주는 것을 볼 수 있다. 참고로 둘 중 하나라도 없으면 잘못된 응답을 전송했다며 이러한 창이 뜬다. 그렇기에 요청의 끝에는 Response Header와 body가 존재해야 하지만 302 Found는 예외다. 302 Found는 한마디로 요청을 한 번 더 보내는 것이기 때..
이 전 글에서 body의 값을 가져왔으니 그 값에 해당하는 객체를 만드는 작업을 하겠다. https://resian-programming.tistory.com/53 위 링크에 있는 글에서 data 변수는 Header 중에서도 body의 해당하는 값을 가지고 있다. 이 값을 이용하여 User 객체를 생성할 것인데 스승님께서 구현하신 parseQueryString Method 사용할 예정이다. parseQueryString은 body의 값과 어떤 값으로 split 할 것인지 parseValues Method에 파라미터로 전달하고 parseValues Method는 파라미터의 값을 통해 body의 값이 없을 때의 null 처리와 람다를 이용하여 Map에 Key, Value로 값을 할당하는 역할을 한다. 우선 ..
전 글의 요구사항은 GET Mapping일 때 상황이었기 때문에 Header에 body가 없었다. 이번에는 HTML의 Get을 Post로 바꾸고 회원가입이 제대로 되는 것까지 진행해볼 예정이다. Http Header의 이미지를 구글에서 찾아보면 Header 부분이 진행된 뒤 한 칸 띄어진 후 body가 있는 것을 확인할 수 있다. BufferedReader.readLine() 을 이용하여 이 부분을 우선 추출해보기로 하겠다. 맨 처음으로 한 것은 'localhost:8080/user/form.html' 에 접근하여 값을 넣고 회원가입을 눌러보았다. 그 후 콘솔 창을 확인했더니 NullPointerException이 확인되었다. 생각해보니 회원가입 버튼을 누르면 나오는 'create.html' 이 없는 상..
- Total
- Today
- Yesterday
- web
- 프로그래머스
- 한 입 크기로 잘라먹는 리액트
- graphQL
- 인텔리J
- 회고
- 모듈
- JAR
- 일지
- MySQL
- @Autowired
- body
- JavaScript
- springboot
- Gradle
- homebrew
- HTTP
- header
- 자바스크립트
- Spring
- Spring Boot
- RequestHandler
- spring-boot
- Request Handler
- 개발
- Java
- 스터디 회고
- mapping
- 멀티모듈
- 개발일지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |