HTML 파싱&렌더링 1. DOM 트리 구성 HTML 파서로 파싱 해서 HTML 데이터를 메모리에 1:1로 로딩하는데, 이때 모든 데이터는 트리 구조로 처리된다. 이 자료구조의 최상위를 document라고 하고, 이렇게 구성된 메모리의 데이터를 DOM(document Object Model)이라고 한다. 2. Render 트리 구성 화면에 보이는 시각적인 구성 요소들을 분류해 두고 화면에 보일 수 있도록 데이터를 담는 과정이라고 할 수 있다. 3. Render 트리 배치 이전 과정에서 분류한 데이터를 화면의 어디에 두어야 할지 배치하는 작업이다. 이 작업을 Layout을 구성한다고 한다. 4. Render 트리 페인팅 Layout을 모두 구성하고 그 결과를 UI 백엔드를 통해서 화면에 출력하는 과정이다...
pom.xml org.mybatis mybatis 3.5.0 org.mybatis mybatis-spring 2.0.0 code import java.util.Properties; import javax.sql.DataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springfra..
Spring Security의 기본 동작은 표준 웹 애플리케이션을 사용하기에 쉽다. 쿠기 기반 인증 및 세션을 사용한다. 또한 CSRF 토큰을 자동으로 처리한다. 반면에 외부 서비스 또는 SPA/모바일 응용 프로그램과 함께 사용되는 REST API만 빌드하는 경우에는 전체 세션이 필요하지 않을 수 있다. 여기에 디지털 서명 토큰인 JWT(JSON Web Token)가 있다. 필요한 모든 정보를 토큰에 저장할 수 있으므로 서버가 세션이 없을 수 있다. 서버가 사용자에게 권한을 부여할 수 있도록 모든 HTTP 요청에 JWT를 첨부해야 한다. 토큰을 보내는 방법에 대한 몇 가지 옵션이 있다. 예를 들어 URL 매개 변수로 또는 Bearer 스키마를 사용하는 HTTP 인증 헤더를 사용한다. Authorizati..
국립국어원에 따르면 사전적 기준으로 보면 한 주의 시작은 월요일, 한 주의 마지막 날은 일요일로 되어있다. 외국에서는 일부 국가에서 일요일을 시작일로 정하는 경우가 있지만 일반적으로 월요일을 시작으로 한다. 우리나라도 월요일을 시작을 하고 있지만 이상하게 달력은 일요일이 처음에 오도록 제작한다. 기준일에 따라 통계가 달라지기 때문에 한 주의 시작일은 중요하다. 고객의 요구사항에 맞게 월별 통계를 어떻게 보여줄 것인가는 개발자의 몫이다. 고객이 한 주의 시작을 일요일, 월요일로 요청할지 아무도 모른다. 특히 해외 프로젝트일 경우에는 재차 확인을 해야 한다. 1. 주의 시작일 월요일, 일요일 결정 2. 월이 겹치는 주의 기준은 시작일이 일요일이면 수요일, 월요일이면 목요일이 어느 월에 속해 있는가로 결정(시..
많은 웹 개발자가 jQuery에 의존한다. 배울 때부터도 자바스크립트를 배우지 않고 jQuery로 시작하는 경우가 꽤 많기도 하다. 라이브러리가 주는 편리함과 jQuery만 알아도 결과물은 만들어 낼 수 있기 때문이다. 또한 많은 좋은 플러그인들이 jQuery에 의존적이다. 하지만 어느 정도 시간이 지나 한계를 깨닫고 DOM 스크립트에 대해 관심을 갖게 된다. 처음 웹 개발 공부를 하면 보통 아래와 같은 순서로 한다. 1. 문법 2. 브라우저 API (DOM API) 3. 라이브러리, 프레임워크 위의 순서로 프런트엔드 개발을 하면서, 배울 건 많고 당장 화면을 쳐내야 한다면 jQuery만큼 좋은 건 사실 없다. 1, 2번(DOM 스크립트)을 몰라도 결과물이 나오기 때문이다. 많은 웹 개발자가 이런 함정에..
public static void main(String[] args) { List studentList = new ArrayList(); studentList.add(new Student("Pea", 20)); studentList.add(new Student("Ni", 35)); studentList.add(new Student("Pang", 30)); studentList.add(new Student("Tum", 25)); studentList.add(new Student("Sombut", 22)); Student student = Collections.max(studentList, Comparator.comparing(s -> s.getAge())); System.out.println("The ol..
특정일자의 요일을 구하고자 할 때, 사용하는 함수가 존재한다. 모든 언어에 요일을 구하는 함수가 있으며, 표준이 있기 마련이다. 일반적인 프로그래밍 언어는 전통적으로 일요일로 시작하며 0을 리턴한다. 일(0), 월(1), 화(2), 수(3), 목(4), 금(5), 토(6) 프로그래밍 언어와 다르게 ODBC에서는 다른 값을 리턴한다. 일(1), 월(2), 화(3), 수(4), 목(5), 금(6), 토(7) 여기서 MySQL과 MariaDB에서 제공하는 WEEKDAY()는 리턴 값이 ODBC 표준을 따르지 않는다는 점이다. 월(0), 화(1), 수(2), 목(3), 금(4), 토(5), 일(6) 특별히 WEEKDAY()를 써야 되는 경우가 아니라면 ODBC 표준을 따르는 DAYOFWEEK()를 사용해야 실수..
일반적인 CHAR, VARCHAR, TEXT 타입의 컬럼에 조건 비교를 하면 대소문자 구분을 하지 않는다. 조건에서 대소문자 구분이 필요한 경우 BINARY 함수를 사용하면 된다. SELECT ID FROM MEMBER WHERE ID = 'ref'; SELECT ID FROM MEMBER WHERE BINARY(ID) = 'Ref'; MySQL 공식 문서에는 아래와 같이 언급하고 있다. For nonbinary strings (CHAR, VARCHAR, TEXT), string searches use the collation of the comparison operands. For binary strings (BINARY,VARBINARY, BLOB), comparisons use the numeric..
// 공통 Ajax call // auth: Authorization // type: Method(GET, POST, PUT, DELETE) // data: 객체 리터럴 형식 data={page: 1, recordsPerPage: 10} // dataType: 데이터 타입 // async: 비동기 여부 (Deafult true 비동기) // successFn: 성공시 // failFn: 실패시 // completeFn: 성공이후 function ajaxCall(auth, type, url, data, dataType, async, successFn, failFn, completeFn) { type = type.toUpperCase(); const options = { type: type, url: url..
- 정렬 알고리즘
- 회고
- Maven
- React
- Eclipse
- Tomcat
- javascript
- 경력관리
- 이직
- 오라클
- 리액트
- 자바스크립트
- SQL
- effective java
- 제주도 여행
- Java
- 프로그래머
- Linux 명령어
- 프로그래머스
- 오라클 내장 함수
- Collection
- 리눅스 명령어
- 성능분석
- sort algorithm
- 자바
- spring
- 소프트웨어공학
- 리액트 16
- 제주도 3박4일 일정
- 개발환경
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |