서비스를 개발할 때, 정상적인 비즈니스 로직을 작성하는 것만큼이나 중요한 부분이 요청 데이터 검증이다. 클라이언트들은 항상 다양하고 창의적인 방법으로 데이터를 입력해 서버로 요청하기 때문에 개발자 입장에서 이를 다 예측하고 걸러내는 작업이 쉽지 않다. 정말 사소한 오류들도 있겠지만, 몇몇 제대로 검증하지 못한 요청 데이터들이 결국 서버 오류로 이어지면, 클라이언트에게 불편한 사용감을 주게 되어 소중한 고객을 잃을 수 있다. 따라서 보통 정상적인 로직보다 검증을 위한 코드가 더 복잡하고, 이를 작성하는 시간이 더 많다고 한다.검증은 보통 다양한 계층에서 이루어질 수 있다. 크게는 클라이언트와 서버로 나누어 볼 수 있다.클라이언트 검증 : 사용자의 입력 폼(form)에서 HTML, Javascript로 실시..
메모리 공간과 주소 바인딩32비트 컴퓨터의 메모리 크기는 4GB우리가 흔히 사용하는 컴퓨터는 32비트 또는 64비트 주소 체계를 사용하고 있다. 32비트 주소 체계를 사용한다는 의미는 메모리의 고유 위치를 나타내기 위해 위해 32비트(4바이트)가 사용되며, 총 2³²개의 고유한 주소를 가질 수 있다는 의미다. 또한, 32비트 컴퓨터의 CPU가 한 번에 처리할 수 있는 데이터 크기이며, 레지스터의 크기이기도 하다.컴퓨터는 바이트 단위로 메모리 주소를 부여하기 때문에 32비트 주소 체계를 사용하게 된다면 최대 약 4GB의 메모리 크기를 가지게 된다. 여기서 직접 비트를 바이트로 환산하는 계산을 해보고 왜 4GB인 지 헷갈릴 수 있다.2³² bit = 4,294,967,296 bit = 536,870,912 ..
스프링 MVC 패턴에서 뷰 템플릿 엔진(View Template Engine)으로 보통 타임리프(Thymeleaf)가 자주 쓰이며, 스프링 부트에서는 타임리프를 표준 뷰 템플릿 엔진으로 취급하고 있다. 프론트 엔드 엔지니어가 같이 있는 업무 환경에서는 보통 API 방식을 사용하기 때문에 프뷰 템플릿을 사용할 일이 없겠지만, admin 페이지를 만든다거나, 프론트 엔드 엔지니어 없이 혼자 개발해야 하는 환경에서는 뷰 템플릿 엔진을 사용하는게 더 편리할 수 있다. 때문에 1개 정도의 뷰 템플릿 엔진을 간단히 배워두는 것은 크게 어렵지도 않고, 언젠간 도움이 될 것이다.Goals타임리프의 특징5가지 기본 표현식자주 쓰는 구문 정리타임리프의 특징내츄럴 템플릿타임리프의 가장 대표적인 특징은 HTML을 자연스러운 ..
CPU 스케줄링의 목적일반적으로 사용자 프로그램이 수행되는 과정은 CPU 작업과 I/O 작업의 반복으로 구성된다. CPU 작업은 레지스터 간의 연산 및 메모리 접근 등으로 이루어지기 때문에 빠르게 수행될 수 있다. 반면 I/O 작업의 경우, CPU의 제어권이 운영체제 커널로 넘어갈 뿐 아니라 상대적으로 매우 느린 입출력 장치의 접근이 필요하게 된다. 전자를 CPU 버스트라고 하고, 후자를 I/O 버스트라고 한다.CPU 버스트(burst) : 사용자 프로그램이 직접 CPU를 가지고 빠른 명령을 수행하는 일련의 단계I/O 버스트(burst) : 커널에 의해 입출력 작업을 진행하는 비교적 느린 단계각 프로그램마다 CPU 버스트와 I/O 버스트가 차지하는 비율이 균일하지는 않다. CPU 버스트가 길게 나타나는 ..
- Total
- Today
- Yesterday
- Python Cookbook
- JPA
- 지옥에서 온 git
- 생활코딩 javascript
- 파이썬 for Beginner 솔루션
- jsp
- Gradle
- 스프링 컨테이너
- 김영환
- 쉽게 배우는 운영체제
- spring mvc
- Computer_Networking_A_Top-Down_Approach
- 프로그래머스
- Do it! 정직하게 코딩하며 배우는 딥러닝 입문
- 패킷 스위칭
- Spring
- 스프링
- 파이썬 for Beginner 연습문제
- Spring Data JPA
- 스프링 테스트
- 쉘 코드
- git
- git merge
- Spring Boot
- 운영체제 반효경
- git branch
- 선형 회귀
- 방명록 프로젝트
- Thymeleaf
- 스프링 mvc
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |