• #50 2022.10.09
  • #49 2022.10.08
  • #48 2022.10.06
  • #47 2022.10.05
  • #46 2022.10.03
  • #45 2022.10.02
  • #44 2022.10.01
  • #43 2022.09.28

오늘 배운 것 :

 

OAuth 기능 구현

 

Spring Security 연결 프로세스

 

403 (Forbidden) 
클라이언트 오류 상태. 서버에 요청이 전달되었지만, 권한 때문에 거절됨

 

CSRF 공격(Cross Site Request Forgery)과 피싱 사이트, 방어법들

 

Spring Boot Security 5.7 ↓ 객체와 서비스메소드 탐구

 

 

느낀 점:

 

OAuth 좀 꿀잼이네

카카오 말고 구글 네이버 페이스북 이거저거 다 연결해보고 싶음

 

 

아쉬웠던 점:

 

없음

'TIL' 카테고리의 다른 글

#52  (0) 2022.10.11
#51  (0) 2022.10.10
#49  (0) 2022.10.08
#48  (0) 2022.10.06
#47  (0) 2022.10.05

오늘 배운 것 :

 

<ResponseEntity>

HttpStatus
HttpHeaders 
HttpBody

 

Optional 사용에 대한 주의점

 

@Configuration 사용 예 확인

 

웹의 인증 및 인가의 개념 이해

 

쿠키값에 저장되는 구성요소

 

세션 리마인드

 

HTTP stateful, stateless

트래픽이 급격히 증가할 것이 예상될 때의 대응법

 

스프링 세큐리티 사용법 (5.7 미만 버전, 이상버전에 따른 용법의 변환, 변환된 이유)

뭔가 엄청나게 많은 세큐리티 내의 객체 및 메소드들 확인

뭔가 엄청나게 깐깐한 세큐리티 보안 일부 영역 해제 방법

 

DB에 저장되는 비밀번호 암호화는 정보통신망법에서 필수로 하도록 권고되어 있다

BCryptPasswordEncoder 비밀번호 DB 단방향 암호화하는 법

 

 

느낀 점:

 

스프링 세큐리티는 또 뭔가 많다 임마 스프링 본체도 아닌게 뭐 이리 많아

타고 타고 넘어가다 보면 서블렛컨텍스트도 보이고 로그인 폼이나 유저 엔티티, 유저 서비스 폼이 미리 정의되어 있질 않나 별게 다 있다

공식문서에 가보면 더 이상 사용되지 않는 객체나 메소드도 잔뜩 있고 대체 이건 뭘까

? 뭘까?

 

 

아쉬웠던 점:

 

시간이 없다

'TIL' 카테고리의 다른 글

#51  (0) 2022.10.10
#50  (0) 2022.10.09
#48  (0) 2022.10.06
#47  (0) 2022.10.05
#46  (0) 2022.10.03

오늘 배운 것 :

 

Spring 4.3 버전 이후의 변경점

Lombok과의 시너지로 코드가 간결화 된 부분 인식

Lombok을 사용하지 않을 때의 Bean 객체 수동 인식법 (ApplicationContext.getBean("가져올빈이름")

Controller 단 url 맵핑의 방법론 또는 파일을 어떻게 나눌지 설계

Server에서 정적 페이지 파일을 HTTP로 돌려줄 때와 동적 페이지를 돌려줄 때의 차이 & 방법

request, response의 데이터 형식과 실제 출력 확인

동기화 방식과 비동기 방식으로 데이터를 가공해 주고받을 때의 차이점 (URL과 dataset Model)

Templates Engine을 사용해 주고 받을 때의 차이점

+ 대체 내부적으로 뭘하는지 모를 신박한 어노테이션들의 모호함

 

 

느낀 점:

 

디스패쳐 서블릿에 의해 맵핑된 url은 나(서버)에게로 보내진 명령어 라고 생각하는게 이해하기 편하다
중요한건 무얼 리턴 해줄지이다
스프링이 어려운건 프로그래밍을 하려면 컴퓨터처럼 위에서 아래로 흐르는 절차적 사고를 이어나가야 하는데
디자인모델과 패턴은 객체지향적 사고를 요구하고 있기 때문에 뇌의 사용영역이 달라 생기는 문제라고 생각한다
(요컨데 이놈은 이해를 넘어 익숙해져야 하는 영역의 공부같음)

근데 대체 듣도보도 못한 Object를 프론트로 던져주는데 어떻게 JSON으로 이해하는 걸까

jackson-databind 라이브러리가 내장되게 바뀌었나

openAPI 끌어올 때 RenderTemplates에서 내부적으로 HttpMessageConverter를 사용해 변환하는 부분이 있던데 그걸 사용하는 건가 좀 궁금하긴한데 파고들면 한도 끝도 없을 수 있으니 그런갑다 하고 넘겨야겠다

 

 

아쉬웠던 점:

 

뇌가 굳어서 주입식 교육의 피해자는 암기나 이해를 못해요

'TIL' 카테고리의 다른 글

#50  (0) 2022.10.09
#49  (0) 2022.10.08
#47  (0) 2022.10.05
#46  (0) 2022.10.03
#45  (0) 2022.10.02

오늘 배운 것 :

 

ApplicationContext
Hikari - Connection Pool
JavaEE -> JakartaEE (javax.*)
Spring Boot Annotation useage
WEB API Design Basic
Servlet review

 

 

느낀 점:

 

스프링 생태계 너무 방대하네
다 알려고 들지 말자 궁금하거나 만들려는 것에 관련된 것만 탐구해야 함

 

 

아쉬웠던 점:

 

콘솔 로그창 보다보면 궁금해서 검색해보는 삼천포로 빠지는 경우가 너무 많은데
뇌가 녹아버렸나 보다

'TIL' 카테고리의 다른 글

#49  (0) 2022.10.08
#48  (0) 2022.10.06
#46  (0) 2022.10.03
#45  (0) 2022.10.02
#44  (0) 2022.10.01

오늘 배운 것 :

 

Spring Boot 3계층 설계

Controller, Service, Repository

 

JSON 데이터 타입 자바에서 다루기

 

OpenAPI 다루는데 필요한 객체

RestTemplate
HttpHeaders
HttpEntity
ResponseEntity
HttpStatus
JSONObject, JSONArray

 

Template engine (혼자 개발할 때 써볼만한)

타임리프 (Thymeleaf), Groovy, FreeMarker, Jade

(스프링에서 JSP 이용은 추천하지 않고 있음)

 

PUT vs PATCH 의 차이점

 

[PUT]
PUT은 클라이언트가 전체 리소스를 업데이트하는 데이터를 보내는 리소스를 수정하는 방법입니다. 엔티티의 정보를 완전히 설정하기 위해 사용합니다. PUT은 리소스를 생성할 수 있다는 점에서 POST와 유사하지만 정의된 URI가 있을 때 수행합니다. PUT은 엔티티가 이미 존재하는 경우 전체 엔티티를 덮어쓰고 존재하지 않는 경우 새 리소스를 생성합니다.

예를 들어 데이터베이스에 있는 사람의 이름을 변경하려면 PUT 요청 시 전체 리소스를 보내야 합니다.

{ "처음 ": " 존 ", " 마지막 ": " 돌" }
PUT 요청을 하려면 두 개의 매개변수를 보내야 합니다. 이름과 성.

[PATCH]
PUT과 달리 PATCH는 리소스에 부분 업데이트를 적용합니다.

즉, 업데이트하려는 데이터만 전송하면 되며 다른 데이터에는 영향을 미치거나 변경되지 않습니다. 따라서 데이터베이스의 이름을 업데이트하려면 첫 번째 매개변수만 보내면 됩니다. 이름.
존재하지 않는 리소스에서 HTTP PATCH를 호출하면 실패할 수밖에 없으며 리소스가 생성되지 않습니다.

 

 

<inteliJ 유용한 단축키 몇개>

souf 
soutv  위에 있는 변수를 바로 찍어줌
soutm  메소드를 바로 만들어줌
shift + 2번    live template
shift + f6   또는 우클릭으로 리펙터 리네임 하면 변수이름 한번에 바꿀 수 있음 (ctrl + r)
ctrl + p   메소드 파라미터 보기
ctrl + shift + f 패키지 내에서 전체 검색
ctrl + shift + enter ; 알아서 찍어줌
ctrl + alt + v 변수명 자동으로 만들어줌
ctrl + alt + m 메소드 자동 추출

 

 

느낀 점:

 

뇌 정지

 

 

아쉬웠던 점:

 

뇌 과부화

'TIL' 카테고리의 다른 글

#48  (0) 2022.10.06
#47  (0) 2022.10.05
#45  (0) 2022.10.02
#44  (0) 2022.10.01
#43  (0) 2022.09.28

오늘 배운 것 :

 

ORM, 하이버네이트, JPA 사용법, inteliJ 단축키 몇 개

H2 DB 사용법

 

언어별 빌드 툴

- Javascript - npm
- Python - pip
- Java - mavenCentral, jcenter

 

cmd network 제어 명령어 몇개

 

 

 

프로젝트 구조

.gradle                     그래들 build tool 설정 파일들
.idea                         git 설정 파일들
build 서버에 올리고 실제로 배포되는 컴파일된 파일들

src/main 프로젝트를 만들고 개발자가 사용하는 java와 정적 파일들의 원본
src/test jUnit 테스트를 위해 사용되는 폴더 같은데 알아봐야함

build.gradle 라이브러리 의존성 주입. maven의 pom.xml과 같은 역할을 한다.

외부라이브러리 위에서 의존성 주입한 dependency들이 여기에 컴파일되서 모여있음

 

 

 

inteliJ 단축키

alt+insert getter,setter,생성자,toString 템플릿 불러오기
alt+enter 라이브러리 import
ctrl+alt+L 정렬

 

 

 

RDBMS vs NoSQL

개인적인 생각
관계성 구축 안하면 좋지 그래도 생산성이나 편리성을 위해서 다양한 기능을 포기하는 느낌임
확실히 데이터 타입이나 분량에 따라서 큰 선택이 갈리긴 해야 한다고 생각한다

머신러닝 같은 대용량의 데이터를 처리하면서 나가는 데이터보다 들어오는 데이터가 오히려 압도적으로 많은 상황에 여러 테이블과 관계성으로 엮인 SQL이 유지보수나 확장하는데 있어 유리할까 생각하면 개인적으로 아니라고 생각한다. 차라리 관계성 없이 NoSQL처럼 무지성으로 때려박고 끌어다 사용하는게 어떤 방면으로 봐도 효율적이라고 생각하고, 공무기관이나 은행처럼 데이터 자체나 관리에 신뢰성이 필요하고 데이터의 양보다 처리 속도를 중시하는 측면에서는 RDBMS가 당연한 선택이라고 생각한다.



JPA

개인적인 생각
기술의 발전과 인류의 게으름의 산물이라고 생각한다 (어차피 내부적으로 JDBC 가지고 있으니까)
JDBC로 SQL 쓰던 걸 JPA 상속받아서 편하게 메소드 쓰면 SQL 안써도 알아서 넣어줌 개꿀
스프링이랑 시너지 나면 클레스로 테이블과 필드 작성과 설정이 가능함
시퀀스 기능까지 있는 건 확인했고 DB에서 직접 처리하는 나머지도 기능들도 다 있을거라 생각 중
LEFT OUTER JOIN 같은 거 하면서 VIEW 만들다가 발작 안해도 됨



Repository

개인적인 생각
데이터나 자료를 모아놓은 공개 저장소 혹은 공개 외부 저장소
보통 일반적인 cs 상에서의 저장소는 container 라고 부르니 공개 외부 저장소로 보고 있다
보통 이러한 리포지토리에 데이터를 업로드 할 때는 deploy (제공한다) 라는 함수 혹은 명령어를 많이 사용하는데
음... 좋다

 

느낀 점:

 

까도까도 양파처럼 배울 게 끝이 없네

 

 

아쉬웠던 점:

 

나중에 개념적으로 보충이 이루어지면 수정을 해야겠다

'TIL' 카테고리의 다른 글

#47  (0) 2022.10.05
#46  (0) 2022.10.03
#44  (0) 2022.10.01
#43  (0) 2022.09.28
#42  (0) 2022.09.28

오늘 배운 것 :

 

InteliJ 사용해서 Spring Boot 환경 구성하기

Lombok, Spring Web, Spring Data JPA, H2 Database, MySQL Driver

 

 

느낀 점:

 

뭘 하든 IDE나 사용하는 라이브러리를 바꾸면 환경 설정하는데 시간이 제일 많이 들어간다

 

 

아쉬웠던 점:

 

약간 좀 막막한 감이 있는데 차근차근 하나씩 알아가야 겠다

사실 하나도 모르겠는데 차근차근 하나씩 알아가면 되지 않을까

'TIL' 카테고리의 다른 글

#46  (0) 2022.10.03
#45  (0) 2022.10.02
#43  (0) 2022.09.28
#42  (0) 2022.09.28
#41  (1) 2022.09.27

오늘 배운 것 :

 

HashMap, TreeMap, 유클리드 호제법으로 재귀함수 만들어서 최대공약수 최소공배수 구하기

제곱수인 경우 약수의 개수가 홀수, 아닌 경우 짝수

객체랑 함수는 찾아서 그냥 쓰자

 

 

느낀 점:

 

HashMap 꺼내쓰기 번거로움

배열 곱창 나는 것도 번거로움

key value 형식은 편하긴한데 그래도 번거로움

LinkedHashMap이나 TreeMap 잘 다루게 연습이나 해야지

 

 

아쉬웠던 점:

 

한 잔 했더니 중간부터 알고리즘 풀기가 힘듬

'TIL' 카테고리의 다른 글

#45  (0) 2022.10.02
#44  (0) 2022.10.01
#42  (0) 2022.09.28
#41  (1) 2022.09.27
#40  (0) 2022.09.26

+ Recent posts