분류 전체보기75 [CS] CPU의 구조와 기능(1) CPU의 구조와 기능 CPU는 기억장치에 저장되어 있는 프로그램 코드인 명령어들을 실햄함으로써 프로그램 수행이라는 컴퓨터의 기본적인 기능을 수행하는데, 그를 위하여 CPU가 수행해야 하는 세부적인 동작들을 순서대로 나열하면 다음과 같습니다. 명령어 인출(Instruction fetch): 기억장치로부터 명령어를 읽어옵니다. 명령어 해독(Instruction decode): 수행해야 할 동작을 결정하기 위하여 명령어를 해독합니다. 데이터 인출(Data fetch): 명령어 실행을 위하여 데이터가 필요한 경우에는 기억장치 혹은 I/O 장치로부터 그 데이터를 읽어옵니다. 데이터 처리(Data process): 데이터에 대한 산술적 혹은 논리적 연산을 수행합니다. 데이터 저장(Data store): 수행한 결과.. 2023. 7. 30. [Spring] Spring Container 스프링 컨테이너 스프링 컨테이너는 스프링에서 객체의 생성, 관리, 조립 등을 담당하는 컨테이너입니다. org.springframework.context.ApplicationContext 인터페이스를 스프링 컨테이라 부르며, XML 또는 어노테이션 기반의 자바 설정 클래스로 생성이 가능합니다. ApplicationContext는 다양한 인터페이스를 상속받으며 빈 관리 기능 & 어플리케이션 부가 기능을 제공합니다. ApplicationContext가 상속 받는 인터페이스의 제공 기능은 아래와 같습니다. BeanFactory: 빈 객체를 생성하고 빈의 인스턴스화, 의존성 주입, 라이프사이클 관리하는 역할을 담당하는 인터페이스입니다. HierarchicalBeanFactory: 부모-자식 관계를 가지는 Bean.. 2023. 7. 27. [Spring] 스프링의 예외 처리 방법 스프링의 기본 예외 처리 방법 자바 프로그램은 예외가 발생하면 예외 정보를 남기고 스레드가 종료되는 반면에 스프링은 예외가 발생했을 때 웹 애플리케이션이 종료되지 않고 HTTP 상태 코드가 노출이 됩니다. 스프링 부트는 컨트롤러 이하에서 발생한 예외를 캐치하여 스레드를 종료 시키는 것이 아닌 예외 내용을 디스패처서블릿에서 에러컨트롤러로 다시 요청을 보냄으로써 마치 정상 요청인 것처럼 예외 내용을 처리하도록 동작하게 됩니다. 하지만 최초 요청과 더불어 예외 요청을 위해 컨트롤러를 2번 호출한다는 것은 꽤나 복잡하다고 느껴지며 또 이는 필터나 인터셉터를 2번 호출하는 것과 같은 다른 문제를 야기할 수 있습니다. 이런 중복 호출을 방지하기 위해 필터는 등록할 때 DispatcherType을 설정 할 수 있으며.. 2023. 7. 26. [CS] 컴퓨터 시스템(Computer System) 컴퓨터 시스템은 기본적으로 하드웨어와 시스템 소프트웨어로 구성되며, 그러한 시스템에 각종 응용 소프트웨어들이 탑재되어 사용자와 상호 작용하면서 프로그램을 처리합니다. 컴퓨터가 프로그램 형태로 주어진 작업을 수행하기 위해서는 전기적 신호들로 표현된 정보들을 해석하거나 이동시키고 처리하여 새로운 정보를 생성해야합니다. 컴퓨터에서 각종 정보의 전송 통로를 제공해주고, 정보에 대한 처리가 실제 일어나게 해주는 물리적인 실체들을 하드웨어라 부릅니다. 소프트웨어란 정보들이 이동하는 방향과 정보 처리의 종류를 지정해주고, 그러한 동작들이 수행될 시간을 지정해주는 명령들의 집합입니다. 하지만 소프트웨어는 하드웨어에 의존적입니다. 소프트웨어는 하드웨어가 제공해주는 기능들을 이용하여 최종적인 결과를 얻을 수 있도록 도와주.. 2023. 7. 26. [Term] State vs Status State와 Status는 둘다 프로그램이나 시스템이 현재 어떤 상태에 있는지를 나타내는 용어입니다. 그러나 이 둘은 서로 다른 의미를 가지고 있습니다. 프로그래밍 관점에서 어떻게 다르며, 사용될 수 있는 예는 어떻게 되는지 알아보도록 하겠습니다. State State는 객체의 내부 데이터나 현재 상태를 의미합니다. 객체의 상태는 해당 객체의 속성 값들의 조합으로 정의합니다. 예를 들어 프로그램에서 자동차 객체를 모델링하고있다면, 자동차 객체의 내부 데이터는 아래와 같은 상태로 나타낼 수 있습니다. 현재 속도 기름의 양 주행거리 또 서버 프로그래밍에서 사용자가 로그인한 경우에 대한 상태(State)는 아래와 같이 가질 수 있습니다. 사용자 이름 로그인 시간 사용자가 수행한 작업 위의 예와 같이 State.. 2023. 7. 25. [Spring] HandlerAdapter 스프링 MVC는 클라이언트로부터 들어오는 HTTP 요청을 처리하고, 응답을 생성하는 등의 작업을 수행하는데, 이를 가능하게 해주는 중요한 컴포넌트 중 하나가 org.springframework.web.servlet.HandlerAdapter입니다. 핸들러어댑터는 스프링 MVC에서 클라이언트의 요청을 처리하는 실제 로직을 구현한 컨트롤러(Controller)를 의미하는 핸들러(Handler)를 실행하고 처리하는 역할을 담당합니다. 핸들러어댑터는 핸들러의 실행을 담당하여, 요청의 처리 결과를 적절한 응답으로 변환하여 클라이언트에게 반환합니다. 특징 핸들러(Handler) 웹 요청을 처리(Handle)하는 객체를 핸들러(Hanlder)라고 부릅니다. 일반적으로 알고 있는 컨트롤러(Controller)가 웹 요.. 2023. 7. 24. [Spring] Filter & Interceptor 스프링(Spring)은 자바(Java) 기반의 웹 애플리케이션 개발을 위한 프레임워크로, 다양한 기능과 기술을 제공합니다. 그 중에서도 Filter와 Interceptor는 웹 애플리케이션의 요청과 응답을 처리하고 조작하는 기능을 제공하는데, 이 두 가지의 개념과 차이점에 대해 알아보겠습니다. Filter 출처 필터는 스프링에서 제공하는 독자적인 기술이 아닌 자바 서블릿에서 제공하는 기술입니다. DispatcherServlet이 요청을 처리하기 전, 후의 웹 애플리케이션 요청과 응답을 가로채 필터링하는 역할을 합니다. 또한 필터는 웹 애플리케이션 영역(Context) 내에서 동작하므로, 스프링의 영역를 접근하기 어렵기 때문에 웹 애플리케이션 영역 내에서 필요한 자원들을 활용하여 사용되는 것이 특징입니다... 2023. 7. 24. [Spring] IoC(Inversion of Control) & DI(Dependency Injection) & Bean 스프링 프레임워크(Spring Framework)는 자바 기반의 대표적인 프레임워크로, 애플리케이션 개발에 필요한 다양한 기능을 제공합니다. 이 중에서도 IoC(Inversion of Control), DI(Dependency Injection), Bean은 스프링의 가장 핵심적인 개념 중 하나로 스프링의 특징이자 장점을 이해하는데 중요한 역할을 합니다. IoC(Inversion of Control)란? IoC는 Inversion of Control의 약어로 번역하자면 제어의 역전입니다. 기존의 프로그램 개발에서는 개발자가 코드를 작성하고 제어의 흐름을 조작하여 객체를 생성하고 관리하는 것이 일반적이었지만 스프링의 IoC는 객체 생성, 관리의 제어 흐름을 프레임워크가 담당하게 되는 개념입니다. 스프링의 .. 2023. 7. 18. [Spring] @ModelAttribute & @RequestBody Spring Framework는 웹 요청을 처리하기 위한 몇 가지 어노테이션(Annotation)을 제공합니다. 가장 일반적으로 사용되는 @ModelAttribute 와 @RequestBody 두 어노테이션은 모두 Spring MVC 컨트롤러의 메소드 매개 변수에 요청 데이터를 매핑하는데 사용합니다. 이 글에서는 @ModelAttribute 와 @RequestBody 각각의 어노테이션이 요청 데이터를 어떤 식(흐름)으로 사용이 되는지 살펴보고자 합니다. @ModelAttribute 특징 @ModelAttribute 어노테이션은 메소드 매개 변수 또는 메소드 반환 값을 명시된 모델 속성(Model Attribute)에 바인딩하는데 사용됩니다. 메소드 매개 변수에 사용되는 경우 매개 변수가 명시된 모델 속성.. 2023. 7. 17. 이전 1 ··· 5 6 7 8 9 다음