분류 전체보기(164)
-
구조체, 포인터, 동적할당 문제
주석처리되있는 문장을 코드로 표현하면 된다. 푸는 방식 : 먼저 전체적인 그림으로 상황을 파악한다. 1번 #include #include typedef struct { int data1; int data2; }Data1; void Func1(Data1** p) { (**p).data1 = 100; // (*p)->data1 = 100; return (*p)->data1; } void Func2(Data1* p) { p->data2 = 200; return p->data2; } int main() { Data1* p = (Data1*)malloc(sizeof(Data1)); Func1(&p); //Func1()함수를 만들어서 Func1()안에서 data1에 100을 넣으세요. Func2(p); //Func..
2022.08.12 -
Spring MVC 구조(2)
Spring MVC 구조 (tistory.com) Spring MVC 구조 아래 그림은 Spring MVC구조의 흐름이다. 1 . 클라이언트의 모든 " *.do "요청을 DispatcherServlet이 받는다. 아래 코드는 WEB-INF/web.xml파일 안의 코드이다. => DispatcherServlet 등록 action org.springfra.. rasony.tistory.com 위의 구조를 보면 Controller가 DAO객체를 직접 이용하고 있다. 하지만, DAO클래스를 교체해야할 경우에 큰 어려움을 겪을 수 있다. 따라서, Controller가 인터페이스를 통해 비즈니스 컴포넌트를 이용하면 컴포넌트의 구현 클래스를 수정하거나 다른 클래스로 대체해도 이를 사용하는 클라이언트는 수정하지 않아도..
2022.07.29 -
Spring - BeanCreationException해결 / .metadata
스프링으로 게시판을 만들 던 도중에 Controller를 역할별로 나누어서 여러개의 Controller를 만들었다. 하지만, 코드이 양이 적어 BoardController로 합쳐 관리하기로 했다. 합치고 나서 실행을 시켜보니 에러가 났다. NFO : org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'action' WARN : org.springframework.web.context.support.XmlWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework...
2022.07.26 -
Spring MVC 구조
아래 그림은 Spring MVC구조의 흐름이다. 1 . 클라이언트의 모든 " *.do "요청을 DispatcherServlet이 받는다. 아래 코드는 WEB-INF/web.xml파일 안의 코드이다. => DispatcherServlet 등록 action org.springframework.web.servlet.DispatcherServlet action *.do 위 코드는 *.do 라고 요청을 서버에 전달하면 컨테이너는 action 이라는 이름으로 등록된 DispatcherServlet 클라스 객체를 생성한다는 뜻이다. 2,3 DispatcherServlet은 HandlerMapping을 통해 요청을 처리할 Controller를 검색한 후 실행한다. DispatcherServlet 객체가 생성되면 Dis..
2022.07.26 -
Spring - 트랜잭션 처리
트랜잭션 먼저, spring에서 트랜잭션을 어떻게 처리하는 지에대해 알아보기 전에, 트랜잭션이 무엇인 지 알아보도록 하겠습니다. 트랜잭션이란? 트랜잭션 : 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위 작업의 단위는 질의어 한 문장이 아니고, 사람이 정하는 기준에 따라 달라진다. 즉, 사람이 정하는 기준에 따라 정해진다. 트랜잭션(Transaction)의 필요성 데이터베이스를 수정되는 도중에 예외가 발생된다면 DB의 데이터들은 수정되기 전 상태로 다시 되돌아가야한다. 그리고 다시 수정 작업이 진행 되어야 할 것이다. 이렇듯 여러 작업을 진행하다가 문제가 생겼을 경우 이전 상태로 롤백하기 위해 사용되는 것이 트랜잭션이다. 예를 들어, 게시판에 사용자가 글을 올리려고 할 때, 사용자는 글을 작성..
2022.07.21 -
Spring - AOP
애플리케이션은 다양한 공통기능이 필요하다. 로깅과 같은 기본적인 기능부터 보안, 트랙잭션과 같은 기능에 이르기까지 애플리케이션 전반에 걸쳐 적용 되는 공통기능이 필요하다. 이런 공통기능들은 공통 관심 사항이라 한다. 공통 관심 사항들을 객체 지향 기법으로 여러 모듈에 효과적으로 적용하는 데 한계가 있어 AOP 라는 기법을 사용한다. AOP란? Aspect Oriented Programming, 문제를 바라보는 관점을 기준으로 프로그래밍 하는 기법을 말한다. AOP를 사용하면, 핵심 로직을 구현한 코드에 공통 기능 관련 코드가 포함되어 있지 않기 때문에 적용해야 할 공통 기능 관련 코드가 변경 되더라도 핵심 로직을 구현한 코드를 변경할 필요가 없다. AOP 용어 Advice : 언제 공통 관심 기능을 핵심..
2022.07.19