저번에 HTTP 프로토콜에 관해 간단히 알아봤는데, HTTP는 Connectionless, Stateless한 프로토콜이다. Connectionless: Client가 Request를 보내면 Server가 처리해서 Response를 한 뒤 접속을 끊는다. Stateless: Server가 Client에 관한 정보를 유지하지 않는다. 위의 두가지 특징때문에 다른 Request 간의 정보를 공유할 수 없다. 로그인 기능을 만드려고 하는데, 어느 Client가 로그인을 한 상태인지를 판단하려면 Cookie와 Session을 알아야한다. Cookie Client에 데이터를 저장하는 수단이다. Client에 저장하므로 Server는 그 데이터를 받아야지만 사용할 수 있는데, 그 과정은 아래 1과같이 이루어진다. ..
1. 개요 Thread는 CPU 이용의 기본 단위이다. thread는 ID, program counter, set of registers, stack으로 구성된다. thread는 한 process 안에 여러개 존재할 수 있으며, 같은 process에 존재하는 다른 thread들과 OS의 자원을 공유한다. 아래 그림 1은 single thread process와 multi thread process의 차이를 보여준다. 위 그림과 같이 thread들은 code, file, data 등을 공유하지만 register와 stack은 각각 가지고 있다. 1.1 MotivationProcess는 여러 개의 독립된 작업들이 필요할 때 thread가 필요하다. 그림 1에서 봤듯이 thread는 여러 자원을 공유함으로써 ..
Mybatis Mybatis는 JDBC로 처리하는 코드와 파라미터 설정 및 결과 매핑을 대신해주는 퍼시스턴스 프레임워크다. 동적 SQL, POJO 매핑 등의 기능을 제공한다. Mybatis 설정 Spring boot에서 Mybatis를 이용해 MySQL을 연동하기 위해선 먼저 아래와 같이 Maven에 Dependency를 설정해줘야한다. ... org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.0 mysql mysql-connector-java 5.1.6 ... Mybatis와 MySQL을 연동하기 위한 connector를 dependency로 추가했다. 이제 Database를 어떤 것을 사용할 지 property에 명시를 해야한다. 아래는 spring ..
Spring Framework의 MVC에서 Model은 Service, DAO, DTO로 나눌 수 있다. 한 번 살펴보자. DAO Data Access Object의 줄임말이다. DB를 사용해 데이터를 조회하거나 조작하는 기능을 담당하는 것들을 DAO라고 부른다. domain logic (비즈니스 로직이나 DB와 관련없는 코드들)을 persistence mechanism과 분리하기 위해 사용한다. persistence layer: Database에 data를 CRUD(Create, Read, Update, Drop)하는 계층 이렇게 따로 분리해놓는 이유는 HTTP Request를 Web Application이 받게 되면 Thread를 생성하게 되는데 비즈니스 로직이 DB로부터 데이터를 얻어오기 위해 매번..
1. Context Switchinginterrupt가 발생하게 되면 운영체제는 프로세스에게 할당됐던 CPU를 가져와 kernel routine을 실행할 수 있도록 해야한다. 이 말은 프로세스가 일시적으로 중단됐다가 interrupt 처리가 끝난 후 프로세스가 작업했던 위치로 돌아와야 한다는 말이다. 이 때 프로세스가 작업했던 위치의 정보를 Context라고 하며 Context는 PCB에 포함된다. Context는 CPU register 값, 프로세스 상태(state), 메모리 관리 정보 등을 포함한다. (그림 1) CPU를 다른 프로세스로 교환하려면 현재 프로세스의 Context를 저장하고 다른 프로세스의 Context를 복구하는 작업이 필요하다. 이 작업을 Context Switch라고 부른다. Co..
Annotation 그냥 찾아보면 주석이라 나오지만 기능이 있으므로 우리가 코드 설명을 위해 붙여놓는 주석과는 차이가 있다. JDK5부터 나왔으며 메타데이터(실제데이터가 아닌 데이터를 위한 데이터)라고도 불린다. 컴파일 또는 런타임에 해석이 된다. 설정값들을 명시한다는 점에서 xml과 비슷하지만 xml은 외부에 존재하고, 필요한 경우 이미 빌드한 결과에 재 컴파일할 필요없이 xml에서 설정만 수정하여 변경사항을 적용할 수 있다. 그렇지만 프로그램 작성을 위해 매번 많은 설정파일을 작성해야한다. Annotation은 선언위에 존재해서 어떤 내용인지 쉽게 판단할 수 있으며 작성할 코드의 양도 적은 편인다. 그렇지만 xml도 위에서 말한 장점이 있으므로 annotation을 사용한다고 해서 xml을 아예 사용..
1. Spring Bean이란자주 사용하는 객체를 singleton으로 만들어 놓고 어디서든 불러쓸 수 있도록 한 것.Java에서도 bean은 재사용이 가능하게 만들어진 component이다. 2. Spring boot에서 bean 쓰기spring에서는 어떤 클래스를 bean으로 두려면 xml에서 아래와 같이 설정을 해야한다. 하지만 spring boot에서는 xml설정 대신 annotation을 이용하여 설정하므로 아래 코드와 같이 클래스를 작성한다. @Configuration public class ConfigClass { @Bean public BeanClass beanClass() { return new BeanClass(); } }위와 같이 작성하면 BeanClass라는 클래스가 bean으로 등..
- Total
- Today
- Yesterday
- spring batch
- @Qualifier
- @Autowired
- Linux
- nodejs
- 클로저
- Tasklet
- Check point within polygon
- Bin
- Barycentric coordinates
- Bean
- Express
- spring
- @Bean
- Closure
- mybatis
- npm
- MySQL
- thymeleaf cannot resolve
- @Component
- chunk
- JavaScript
- unity
- thymeleaf 변수 인식
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |