목록전체 글 (85)
개발새발
- 클라이언트 요청을 처리하고, 그 결과를 반환하느 웹 프로그래밍 기술 - 클라이언트가 요청을 하면 그에 대한 결과를 다시 전송해주는 역할을 자바 프로그램이 하는 것 Servlet 동작 방식 사용자가 URL(ex. localhost:8080/hello)입력하면 HTTP Request가 Servlet Container로 전송 요청을 전송받은 Servlet Container 는 HttpRequest, HttpResponse 객체를 생성 사용자가 요청한 URL이 어느 서블릿에 대한 요청인지 찾는다. 여기서는 helloServlet을 찾게 된다 service 메서드를 호출한 후 클라이언트의 GET, POST 여부에 따라 doGet(), doPost()를 호출 동적페이지를 생성한 후 HttpServletRespo..
자주 듣는데 잘 알지 못한다 동기 비동기에 대한 비유는 흔히 카페에서 주문하는 상황으로 표현 동기 카페에서 커피를 주문할 때 점원은 한 명 밖에 없는데 주문을 하고 나니 점원이 커피를 바로 줄 테니 기다려라고 한다 뒤에 사람은 계속 오는데 커피가 나올 때 까지 뒤에 사람은 가만히 뒤에 서 있기만 해야 한다 이 상황이 동기와 비슷한 상황 동기란 결국 순서대로 실행 요청을 보내고 난 뒤 응답이 오기 전까지는 아무것도 할 수가 없다 코드를 파악하기 쉽다 순서대로 실행이 되기 때문에 디버깅 쉽다 멀티 스레드로 구현하지 않는 이상 비동기로 구현하는 것은 거의 힘들다비동기 커피를 주문하는데 주문을 하고 나니 점원이 진동벨을 건네주며 진동벨이 울리면 가지러 오라고 한다 주문만 하고 앞에 사람이 빠져 바로 뒤에 기다리..
정말 은인이신 분과 프로젝트를 하다가 백단은 어느정도 완성했기 때문에 프론트쪽을 만들어보기로 했다 사용할 언어는 next.js다 처음 들어봤다 공부를 해본다 Next.js 따로 설정이 필요없이 SSR, SEO부터 TypeScript까지 생산에 필요한 많은 기능들을 제공해주는 강력한 React 프레임워크 ssr 방식을 사용하지만 SPA가 가능하다 처음 사용자가 server에 페이지 접속을 요청하면 SSR 방식으로 HTML을 보내줘서 SEO에 유리하고 이후 사용자와 페이지가 상호작용 할 때는 CSR방식으로 빠르게 화면 전환이 가능하여 SPA의 장점조 포함한다 HMR(Hot Module Replacement)을 지원하는 Webpack 기반 환경과 커스터마이징 HMR은 브라우저를 새로 고치지 않아도 Webpac..
spring security란 spring기반의 애플리케이션의 보안(인증, 인가, 권한등)을 담당하는 스프링 하위 프레임워크 '인증', '권한'에 대한 부분을 Filter 흐름에 따라 처리 Filter는 Dispatcher Servlert로 가기전에 적용되므로 가장 먼저 URL요청을 받음 사용자가 Username과 Password를 통해 인증을 요청 AuthenticationFilter의 구현체인 UsernamePasswordAuthenticationFilter는 전달받은 Username과 Password를 가지고 UsernamePasswordAuthenticationToken을 생성 생성된 Authentication을 AuthenticationManager에 전달 AuthenticationManager..
트랜잭션은 여러개의 작업들을 하나의 그룹으로 묶어서 처리하는 처리 단위 시스템에서 사용되는 더 이상 쪼갤 수 없는 업무 최도 산위 목적 데이터베이스 서버에 여러 개의 클라이언트가 동시에 엑세스 하거나 응용프로그램이 갱신을 처리하는 과정에서 중단될 수 있느 경우 등 데이터 부정합을 방지하고자 사용 트랜잭션에는 4가지의 특징 원자성 원자성은 트랜잭션이 DB에 모두 반영되거나, 전혀 반영되지 않거나 All or Nothing을 생각 일관성 일관성은 트랜잭션 작업 처리의 결과가 항상 일관되어야 한다 즉, 데이터 타입이 반환 후와 전이 항상 동일해야 한다 독립성 독립성은 하나의 트랜잭션은 다른 트랜잭션에 끼어들 수 없고 마찬가지로 독립적임을 의미 즉, 각각의 트랜잭션은 독립적이라 서로 간섭이 불가능하다 지속성 지..
ORM 이란? Object Relational Mapping(객체-관계-매핑)의 약자 객체와 데이터베이스의 관계를 매핑해주는 도구 프로그래밍 언어의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 도구 프로그래밍 언어의 객체와 관계형 데이터베이스 사이의 중계자(통역자) 역할 MVC 패턴에서 모델(Model)을 기술하는 도구 객체와 모델 사이의 관계를 기술하는 도구 ORM의 장단점 장점 객체 지향적인 코드로 인해 더 직관적이고, 비즈니스 로직에 더 집중할 수 있게 도와준다 ORM을 이용하면 SQL 쿼리가 아닌 직관적인 코드로 데이터를 조작할 수 있어 개발자가 객체 지향 프로그래밍하는 데 집중할 수 있도록 도와준다 선언문, 할당, 종료 같은 부수적인 코드가 없거나 급격히 줄어든다 각종 객체에..
REST 는 "REpresentational State Transfer"의 약자로 주어진 시점에 두 시스템 간의 새로운 통신 방식으로, 시스템 중 하나를 'REST 클라이언트'라고 하고 다른 시스템을 'REST 서버'라고 한다 HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고 HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미 REST 클라이언트란? REST 클라이언트는 시스템 또는 서비스 공급자가 통신을 위해 노출하는 REST 서비스 API를 호출하는 방법 또는 도구 예를 들어 API가 Google에서 실시간 교통 정보를 얻기 위해 Google 교통 ..
스프링MVC M -Model Spring MVC 기반의 웹 애플리케이션이 클라이언트의 요청을 전달 받으면 요청 사항을 처리하기 위한 작업을 한다 처리한 작업의 결과 데이터를 클라이언트에게 응답으로 돌려줘야하는데, 이 때 클라이언트에게 응답으로 돌려주는 작업의 처리 결과 데이터를 Model이라고 한다 클라이언트의 요청 사항을 구체적으로 처리하는 영역을 서비스 계층(Service Layer) 실제로 요청 사항을 처리하기 위해 Java 코드로 구현한 것을 비즈니스 로직(Business Logic) V - View Model 데이터를 이용해서 웹브라우저 같은 클라이언트 애플리케이션의 화면에 보여지는 리소스(Resource)를 제공하는 역할 C - Controller Controller는 클라이언트 측의 요청을 ..
동작 원리부터 적어보자 일단 다 모르지만 나만 볼것이기 때문에 내가 아는걸 적어보자 근래에 공부하면서 가장 많이 본 그림이다 스프링mvc를 공부하면 똑같진 않더라도 비슷한 그림은 무조건 볼거라 생각한다 클라이언트가 HTTP메서드를 이용해서 요청 Dispatcher Servlet이 요청을 받아 핸들러 매핑에게 물어본다 이걸 처리해 줄 수 있는 Controller가 있어?? 그럼 핸들러 매핑이 알맞은 Controller의 정보를 전달 그 정보를 가지고 핸들러 어댑터에게 일을 부탁한다 "핸들러 어댑터야 이 정보를 가지고 있는 Controller에게 일 좀 시켜줘" 핸들러 어댑터가 받은 정보를 가지고 있는 Controller를 호출하여 일을 시킨다 만들어진 결과물을 다시 핸들러 어댑터에게 전달 만들어진 정보를 ..