일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ./gr
- MSA
- IPC
- JWT
- ./gradlew docker
- RESTfull API
- 동기
- java I/O
- 로그인/로그아웃
- 스프링부트 계층구조
- http
- 작업명중복
- spring
- 프레젠테이션 계층
- 로그인 인증 흐름
- 스프링 부트 테스트
- 스프링부트
- formmatted
- 퍼시스턴스 계층
- JPA
- 비즈니스 계층
- 세션기반 인증
- ORM
- 어노테이션
- 스프링
- @temproal
- 비동기
- 토큰기반 인증
- 스프링부트 구조
- Java
- Today
- Total
목록Back-end/기본상식 (9)
[DEV] J-Jay
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/qAUyS/btstykJeGmc/DjX6dptrCfkY6ijwdlhYZK/img.png)
사용자가 서버에 접근할 때 이 사용자가 인증된 사용자인지 확인하는 방법은 다양하다. 대표적인 사용자 인증 확인 방법에는 서버 기반 인증과 토큰 기반 인증이 있다. 서버기반 인증 스프링 시큐리티에서는 기본적으로 세션 기반 인증을 제공해 준다. 아래 글을 참고 바란다. https://dev-junick.tistory.com/57 스프링 부트 - 로그인/로그아웃 구현 스프링 시큐리티 설정 build.gradle (의존성 추가) dependencies { //스프링 시큐리티를 사용하기 위한 스타터 의존성 implementation 'org.springframework.boot:spring-boot-starter-security' //타임리프에서 스프링 시큐리 dev-junick.tistory.com 토큰기반 인..
인증(Authentication) 인증은 사용자의 신원을 입증하는 과정이다. 예를 들어 사용자가 사이트에 로그인을 할 떄 누구인지 확인하는 과정을 인증이라고 한다. 인가(Authorization) 인가는 인증과는 다르다. 인가는 사이트의 특정 부분에 접근할 수 있는지에 권한을 확인하느 작업니다. ㅇㅖ를 들어 관리자는 관리자 페이지에 들어갈 수 있지만 일반 사용자는 관리자 페이지에 들어갈 수 없다. 이런 권한을 확인하는 과정일 인가라고 한다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bwBcY2/btss3YTw5Qq/TUYCqFkbkYcrfscF5ZIrfK/img.png)
API 네트워크에서 API는 프로그램 간에 상호작용하기 위한 매개체를 말한다. 식당을 예시로 들어보자. 식당에 가면 점원에게 요리를 주문한다. 그리고 점원은 주방에 가서 '요리를 만들어 주세요' 라고 요청한다. 요리가 완성되면 다시 점원이 손님에게 요리를 전달한다. 여기서 손님은 클라이언트, 주방에서 일하는 요리사를 서버라고 생각하고, 중간에 있는 점원을 API라고 생각하면 된다. 이 상황을 웹사이트에 방문하는 상황에 적용해서 생각해보자. 웹사이트의 주소를 입력해서 '네이버 메인화면 보여줘' 라고 요청하면 API는 이 요청을 받아 서버에 전달해준다. 이후 서버는 API가 준 요청을 처리해 결과문을 만들고 이것을 다시 API에게 전달한다. API는 최종 결과물을 브라우저에 보내주고 화면을 볼 수 있게 된다..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b1L91k/btssDLHU4P1/BqaZWBfATDC7PUFRqPueDk/img.png)
Library(라이브러리란)? 라이브러리는 애플리케이션 개발에 필요한 기능인 클래스, 함 수 등을 모아놓은 코드의 모음을 말한다. 프로그래밍 세계에서의 라이브러리는 도서관이라는 의미보다는 책들의 모음이라고 이해하는 것이 더 좋다. 개발자가 소프트웨어를 만들 때 필요에 따라 원하는 기능을 구현하기 위해 코드의 모음을 가져다 쓸 수 있는 일정의 도구 역할을 하는 것이다. 따라서 개발자는 복잡한 코드를 작성하지 않아도 되므로 원하는 기능을 더 빠르게 개발할 수 있고, 라이브러리는 독립적으로 아리브러리 끼리 영향을 크게 주지 않는다. Framework(프레임워크란?) 프레임워크는 소프트웨어 개발으 수월하게 하기 위한 소프트웨어 개발 환경이다. 프레임워크는 틀(Frame)과 일(Work)의 합성어로 일하기 위한 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/C5b7a/btssvXhzNj4/pOsJAJIDFaBv4VagXQGYb0/img.png)
IP 와 Port란? IP는 인터넷에서 컴퓨터 또는 기기들이 서로를 식별하고 통신하기 위한 주소이다. IP를 알면 서버를 찾을 수 있지만 서버를 이용하려면 IP 뿐만 아니라 Port 까지 알아야 한다. IP가 서버를 찾기 위한 번호라면 Port는 그 서버에서 운영되고 있는 서비스를 구분하기 위한 번호입니다. 쉽게 말해서 IP가 백화점이라면 포트는 각자 다른 물건을 살 수 있는 매장이라고 상상하면 된다. 예를 들어 우리가 흔히 사용하는 웹 브라우저에 주소에는 사실 IP와 Port가 들어 있다. www.naver.com 과 같은 주소는 IP를 쉽게 알아보기 위해 이름표(도메인)을 붙인 것이고 그 앞에 있는 https://라는 것은 서버의 443 포트를 사용하기 위한 입력이다. 그렇다면 우리가 Local에서 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bTT8W5/btssilQP9uH/M1urdR4OLLF3H9Hxs9F2mK/img.png)
데이터 베이스란? 데이터 베이스는 여러 사람이 데이터를 한 군데에 모아놓고 여러 사람이 사용할 목적으로 관리하는 데이터 저장소이다. 흔히 데이터베이스를 말할 때 MySQL, Oracle, PostgreSQL등을 이야기 한다. 사실 엄밀히 말해 이것들은 데이터베이스를 관리하는 시스템 이름(DBMS) 이며 데이터 베이스가 아니다. 다만 데이터 베이스와 데이터베이스 관리 시스템은 한 쌍으로 움직이므로 둘을 하나처럼 언급할 뿐이다. RDB란? 데이터베이스는 여러 가지로 구분할 수 있다 (RDB, NoSQL, NewSQL 등) 그중 가장 많이 사용하는 데이터베이스느는 RDB이다. RDB는 Relational Database의 약자로 관계형 데이터베이스라는 뜻 RDB가 아닌 데이터베이스를 NoSql 또는 NewSQ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bhzG6y/btssxFGVXQ4/Ny3h6Pi7RuKsrPo3k6ezyK/img.png)
인터넷 서비스는 보통 서버와 클라이언트가 관계를 맺는다. 그래서 이 둘의 관계를 잘 이해해야 한다 보통 클라이언트와 서버의 관계는 아래와 같이 표현한다. 클라이언트란? 클라이언트는 서버로 요청하는 프로그램을 모두 일컬어 말한다. 우리가 사용하는 프로그램인 웹 브라우저가 바로 대표적인 클라이언트 중 하나이다. 우리는 웹 브라우저로 무엇을 할까? 주소를 입력하고, 화면을 확인한다. 이떄 주소를 입력한 뒤 [Enter] 를 눌러 정보를 요청 하는 행위를 '서버(Server)에 요청(Request) 한다.' 라고 한다. 그러면 서버는 그 주소에 맞는 화면으로 응답(Response) 한다. 서버란? 서버는 클라이언트의 단짝이다. 서버는 클라이언틔 요청을 받아 처리하는 주체이다. 클라이언트가 데이터를 요청했다면 데..
Restful API Design RESTFUL API: 표현 상태 전송 (REST)의 원칙을 준수하는 API(Application Programming Interface) 프로세스 REST는 웹 서비스를 만들 때 사용할 수있는 제약 세트를 정의하는 소프트웨어 아키텍처 스타일 제약 조건 클라이언트 서버 아키텍처 무국적 아키텍처, 캐시 가능성 및 균일 한 인터페이스 사용 편안한 API 디자인은 이러한 제약을 따라 API가 확장 가능하고 유연하며 관리가 편함 (리소스 설계, HTTP 방법 정의, 하이퍼 미디어 링크를 사용 포함) Restful API Design은 다른 시스템 및 서비스와 통신 할 수있는 최신 웹 애플리케이션을 구축하는 데 중요한 사항
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ELSqw/btsobKBdrDC/Pu2N9nkV6jHjaypEV1LJE1/img.png)
HTTP : 프로토콜 또는 하이퍼 텍스트 전송 프로토콜 인터넷을 통해 데이터를 전송하는데 사용되는 통신 프로토콜 월드 와이드 웹(www)의 데이터 커뮤니케이션의 기초이며, 웹 서버와 클라이언트 간 정보 교환을 담당 HTTP 모델 HTTP는 요청 - 응답 프로토콜로 클라이언트가 요청을 서버로 보내고, 서버가 요청 된 데이터로 응답함을 의미 HTTP는 클라이언트가 요청을 시작하고 서버가 요청 된 데이터로 응답하는 클라이언트 - 서버 모델을 기반 HTTP는 무국적 프로토콜 각 요청 및 응답은 이전 요청 또는 응답과 무관함 전송 된 데이터는 텍스트 형태이며 사람이 쉽게 읽고 이해할 수 있음 전반적으로 HTTP 프로토콜은 인터넷의 중요한 구성 요소이며 서버와 클라이언트간에 정보를 교환 할 수 있게 해줌