일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코테
- python
- sql
- Algorithm
- 항해99
- JPA
- 크루스칼
- 코딩테스트
- 자료구조
- javascript
- Java
- 자바의정석
- jsp
- 가상컴퓨팅
- generic class
- 개발자취준
- 취리코
- 생성자
- 알고리즘
- dbms
- 암호학
- BFS
- spring
- dfs
- DB
- 클라우드 컴퓨팅
- 개발자취업
- 공개키 암호화
- Queue
- data structure
- Today
- Total
목록개발 공부/Spring framework (15)
PLOD
MSA작고 독립적으로 배포 가능한 각각의 기능을 하는 서비스들로 구성된 아키텍쳐모놀리식 서비스에서 각각의 비즈니스 로직을 분리하여 개별 프로젝트로 생성한 뒤 가장 앞단에 API Gateway와 같은 분배기를 통해 각 서비스 서버에 요청을 분산하여 관리 애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스 자향 아키텍쳐서비스는 기능별로 구분서비스의 교체가 쉽다각 서비스의 최적인 개발언어 DB, HW , 소프트웨어 환경을 사용하여 구현각 서비스는 독립적인 배포가 가능MSA 장단점장점서비스별 스케일링 가능서비스별 다른 프레임워크 사용 가능 (서비스 별 독자적 운영)하나의 서비스가 off 되더라도 나머지 동작 가능부분적으로 로직 업데이트 가능단점초기 구성의 난이도시스템이 돌아가지만 특정 서비스가 o..
@PathVariable경로 변수를 표시하기 위해 메서드에 매개변수에 사용된다경로 변수는 중괄호 {id}로 둘러싸인 값을 나타낸다URL 경로에서 변수 값을 추출하여 매개변수에 할당한다경로변수는 값을 반드시 가져야 한다 → 값이 없으면 404에러 출력주로 상세 페이지, 수정, 삭제와 같은 작업에서 리소스 식별자로 사용된다서버에 보내려는 데이터를 URL 경로에 표시할 수 있다. // GET http://localhost:8080/hello/request/star/Robbie/age/95@Controller@RequestMapping("/hello/request")public class RequestController { @GetMapping("/star/{name}/age/{age}") @Resp..
기존에 Controller 클래스에만 의존하여 모든 기능을 처리하도록 한다면 문제가 발생할 수 있다. 한 개의 클래스에 너무 많은 양의 코드가 존재하기 때문에 코드를 이해하기 어려움 → 가독성 떨어짐현업에서는 코드의 추가 혹은 변경 요청이 계속 생길 수 있다.문제가 발생했는데 해당 Controller 클래스를 구현한 개발자가 퇴사한다면? → 유지보수성 떨어짐 이러한 문제점들을 해결하기 위해 서버 개발자들은 서버에서의 처리과정이 대부분 비슷하다는 걸 깨닫고, 처리 과정을 크게 Controller, Service, Repository 3개로 분리하였다. Web Layer흔히 사용하는 Controller와 JSP / freemaker 와 같은 view 템플릿 영역이다Filter,Intercepter,Con..
인증과 인가인증(Authentication)인증은 해당 유저가 실제 유저인지 인증하는 개념해당 리소스에 대해서 작업을 수행할 수 있는 주체인지 확인하는 것인가(Authorization)해당 유저가 특정 리소스에 접근이 가능한 지 허가를 확인하는 개념인증 과정 이후에 일어나는 확인 과정filterFilter란 Web 애플리케이션에서 관리되는 영역으로 Client로 부터 오는 요청과 응답에 대해 최초/최종 단계의 위치이며 이를 통해 요청과 응답의 정보를 변경하거나 부가적인 기능을 추가할 수 있다주로 범용적으로 처리해야 하는 작업들(ex. 인증 , 인가와 같은 보안처리)에 활용로직을 비즈니스 로직과 분리하여 관리 할 수 있다는 장점Spring SecurityFilter chain Spring에서 모든 호출은 ..
JPAJPA는 자바 진영에서 ORM기술 표준으로 사용되는 인터페이스의 모음이다.기존의 JDBC는 SQL 의존적이라 변경에 취약하였다. 그리고 쿼리를 통해 직접 접근하는 방식이라 SQL 직접 변경해주어야 해서 수고스러웠다.이러한 점을 ORM 기반의 JPA가 해소할 수 있을 것이다. JPA를 통해 백엔드 개발자들은 쿼리 작성과 수정에 들이는 노력을 비즈니스 로직 개발에 힘쓸수 있게 되었다. ORM(Object-Relational Mapping) 애플리케이션 Class와 RDB(Relational DataBase : 관계형 데이터베이스)의 테이블을 매핑한다는 뜻이며, 기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이라고 보면 된다.ORM의 장점SQL 문이 아닌 메서드를 통해 데이터..
객체지향언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임 워크이다. JDBC를 통해 데이터베이스에 엑세스하는 작업을 갭슐화하고 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복 작업을 제거한다. spring framework와 MyBatis를 연동해서 좀 더 쿼리를 좀 더 빠르게 SQL을 처리할 수 있다. 전통적인 JDBC MyBatis 직접 Connection을 맺고 마지막에 close() UPDATE, INSERT, DELETE 문 실행 시 ,PrepareStatement를 직접 생성 및 처리 PrepareStatement의 setVO() 등에 대한 모든 작업을 개발자가 처리 SELECT문의 경우 직접 R..