목록DEV&OPS (247)
삶 가운데 남긴 기록 AACII.TISTORY.COM
공백문자(스페이스 한 칸) html에서는 공백을 연속으로 써도 공백 1칸으로 인식합니다. 그래서 공백을 여러 개 사용해야 할 때는, 빈 칸을 으로 표현해 줍니다. 브라우저가 기호 하나당 빈 칸(space)하나로 표시해줍니다. < 부등호() 영어로 greater than 이라는 뜻입니다. 마찬가지로 태그 기호와 충돌을 일으키기 때문에 부등호 기호를 쓰려면 변환해야 합니다. & 앰퍼샌드(&) 기호는, 위에서 사용한 기호들 처럼 이미 특수한 용도로 사용되고 있습니다. 그래서 & 기호 자체를 표현해 주기 위해서는 & 를, & 이렇게 표기해 주어야 합니다. " quotation 즉, 이것은 쌍따옴표(")를 표현하는 것입니다. 자바스크립트와 충돌 가능성이 있어서 변환해서 표현해야 합니다. 그런데 일반 텍스트에서는 ..
html은 태그들의 tree 구조로 되어 있는 데 이 것을 DOM tree 라고 부릅니다. 이러한 DOM 트리를 검색하면서 특정 태그(element)를 선택하여 CSS를 적용할 수 있습니다. 이렇게 html 의 요소(element)를 특정하여 선택할 수 있게 해주는 것을 selector (선택자)라고 부릅니다. element selector * 모든 element type 지정한 타입의 element class 지정한 class의 element type.class 지정한 클래스에 속하는 지정한 타입의 element #id attribute에 지정한 id값에 해당하는 element attribute selector [attr] attr 어트리뷰트를 정의하는 element [attr="val"] attr 의..
기본 구조 1. DOCTYPE 에 DTD 문서를 명시하지 않아도 됩니다. 2. 인코딩을 명시하는 것이 간결해졌습니다. 3. link type은 매번 text/css 로 명시하지 않아도 됩니다. 4. script type도 매번 text/javascript를 명시하지 않아도 됩니다. Semantic/Structual 요소(element) 컨텐츠의 목적이나 구조에 맞게 태그를 사용하여 빅데이터에서의 검색이 수월하게 하기 위해 도입되었습니다. 1. 레이아웃 header(머리말), footer(제작자, 저작권 정보), hgroup(제목과 부제목) nav(메뉴), section(문서영역 구분), article(개별 컨텐츠 즉, 뉴스기사, 블로그 내용 등) aside(좌우측 컨텐츠) 2. 그룹핑 main(주요 컨텐..
https://으로 된 사이트를 방문하다 보면 마주치는 오류들이 있습니다. 브라우저마다 약간씩 차이가 있지만 아래와 같은 오류 메시지가 나왔을 때 해결 방법을 알아보겠습니다. 이 웹 사이트의 보안 인증서에 문제가 있습니다. 이 웹사이트에 안전하게 연결하는 동안 문제가 발생했습니다. 이 사이트는 안전하지 않습니다. 연결이 비공개로 설정되어 있지 않습니다. 1. 시스템 시간 확인 날짜/시간이 올바르지 않은 경우 인증서 오류가 발생할 수 있습니다. 2. 인터넷 옵션 변경 스크롤을 내리다보면 보안 설정 부분에 "인증서가 하나만 있는 경우 클라이언트 인증서 선택 안 함"을 사용으로 선택하시고 "크기 및 위치 제한 없이 스크립트 실행 창을 열 수 있습니다"를 사용으로 선택하십시오. 그리고 확인 버튼을 누른 후 재부..
JDK 설치 오라클 사이트에서 JDK를 다운받아서 설치합니다. 설치한 후에는 환경 변수에서 JAVA_HOME 을 등록하고 JDK가 설치된 경로를 지정해줍니다. 환경변수의 PATH에는 %JAVA_HOME%bin 으로 저장합니다. 설정이 완료된 뒤에는 명령프롬프트(cmd)에서 javac 명령어를 입력해서 컴파일러가 정상 실행되는지 확인합니다. 이클립스(STS, 전자정부프레임워크) 설정 Lombok 라이브러리의 안정성 때문에 이클립스를 JRE환경이 아닌 JDK환경에서 구동되도록 설정을 변경합니다. eclipse.ini(혹은 sts.ini) 파일의 상단에 아래와 같은 내용을 추가합니다. -vm JDK설치경로\bin\javaw.exe 이클립스 한글 인코딩(UTF-8) 확인 메뉴> Window > Preferenc..
에러 메시지 Host 'IP주소' is not allowed to connect to this MySQL server 라고 나오면서 mysql에 원격 접속이 안 되는 경우 로컬 접속 mysql -u root -p 확인 쿼리 실행 mysql> SELECT HOST,USER FROM mysql.user; 접속 아이피 설정 -- 모든 IP 허용 하는 경우 GRANT ALL PRIVILEGES ON *.* TO '아이디'@'%' IDENTIFIED BY '패스워드'; -- IP 대역(192.168.0.xxx)으로 허용하는 경우 GRANT ALL PRIVILEGES ON *.* TO '아이디'@'192.168.0.%' IDENTIFIED BY '패스워드'; -- 특정 아이피 1개(192.168.0.100)을 허용..
https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389 KISA 인터넷 보호나라&KrCERT KISA 인터넷 보호나라&KrCERT www.boho.or.kr Log4j 2 버전에 존재하는 JNDI(Java Naming and Directory Interface) 인젝션 취약점으로, 이를 악용하면 원격 코드 실행이 가능하게 됩니다. CVSS스코어 10점 만점중 10점 위험도로 가장 높은 위험도의 취약점 수준이 심각하므로 빠른 대응이 필요합니다. 보안 취약점 영향받는 log4j 버전 2.13~2.15 : CVE-2021-45046(서비스 거부 취약점) 1.2.x 모든 버전: CVE-2021-4104(원격 코드 실행 취약점)..
MYSQL 에서 VARCHAR 형식으로 데이터는 YYYY-MM-DD 같이 저장되어 있을 때 비교 연산자를 사용하면 오류가 생길 수 있습니다. 그럴 때 필요한 함수가 DATE_FORMAT() 과 STR_TO_DATE() 입니다. 1. 컬럼이 VARCHAR 형식일 때 SELECT * FROM TBL_BOARD WHERE DATE
커널 오브젝트(kernel object) 프로세스나 스레드, 파일 같은 리소스를 관리하기 위한 정보들을 모아놓은 구조체가 메모리에 로딩되어 블록 형태로 존재하고 있는데 이를 가리켜 커널 오브젝트라고 부릅니다. 각각의 리소스 별로 따로 커널 오브젝트들이 존재하게 됩니다. 예를들어 하나의 프로세스가 생성되면 그 프로세스를 위한 커널 오브젝트가 운영체제에 의해 생성됩니다. 오브젝트 핸들(kernel object handle) 운영체제는 커널 오브젝트의 간접적인 조작을 위해 여러 가지 시스템 함수를 제공합니다. 오브젝트 핸들은 커널 오브젝트 식별을 위해 할당되는 값를 말합니다. int _tmain(int argc, TCHAR* argv[]){ //GetCurrentProcess(): 현재 프로세스의 오브젝트 핸..
GetLastError() 윈도우즈 시스템 함수들은 에러가 났을 때 리턴 값이 대개 NULL 이기 때문에 에러 원인을 알 수 없습니다. 이럴 때 사용하는 함수가 GetLastError 함수를 사용하면 에러코드를 획득할 수 있습니다. 이 에러코드는 MSDN을 참고하면 무슨 에러인지 알 수 있게 됩니다. #include #include #include int _tmain(void) { HANDLE hFile = CreateFile(_T("TEST.DAT"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) { _tprintf( _T("error co..
마이크로소프트 윈도우즈 시스템은 16비트(9X) 부터 32비트(XP)를 거쳐 64(vista~)비트 기반으로 설계되어 있습니다. 변수를 저장하는 자료형의 크기가 변하는 관계로 포인터를 다룰때 문제가 생깁니다. define 매크로를 이용하여 빌드시 실행 환경에 따라 빌드를 비교적 쉽게 바꿀 수 있지만, 소스가 매크로로 가득하게되면 가독성이 매우 떨어지게 됩니다. 이에 대한 대안이 Polymorphic 자료형을 이용하는 것입니다. 아래 예제에 사용된 것 처럼 Unsigned Integer 자료형을 PTR 키워드를 붙이게 되면 실행환경에 따라 그 자료형의 크기가 결정됩니다. #include #include #include //64비트 환경 32비트 환경에 따라서 다르게 선언되는 자료형 UINT_PTR UINT..
MFC 문자열 처리 c언어와 c++ 에서는 string이라는 자료구조를 컴파일러 차원에서 지원하고 있지 않습니다. (가장 많이 쓰는 자료구조형임에도 불구하고 옛날 언어라...) 그래서 c/c++에서는 string을 char 의 배열에 끝에 널문자(\0)를 넣어 포인터로 관리합니다. Windows 에서는 이런 string처리를 위해 char* 를 대신해 LPSTR, LPCSTR, LPTSTR, LPCTSTR , LPWSTR, LPCWSTR 같은 자료형을 지원하고 있습니다. (안그래도 불편한데 더 불편하게 만들었습니다. 헝가리안 표기법의 유산이지요.) 그래서 이 암호같은 약자들의 뜻을 알아보도록 하겠습니다. LP는 long pointer 16bit 시절 포인터는 모두 16bit였고 24bit 메모리를 lon..
string class Header string s, s1, s2, s3; .assign(): 문자열 할당 //인수로 지정된 문자열을 할당 s1.assign("ABCDEFGH"); //s1="ABCDEFGH" //문자를 특정 개수 만큼 문자열에 할당 s2.assign(3, 'A'); //s2 = "AAA" //문자열의 지정된 인덱스 부터 특정 개수를 복사해서 할당 s3.assign(s1, 2, 4) //s3 = "CDEF" .append(): 문자열 추가 //기존 문자열 뒤에 추가 s.append("ABCDEF"); //s = "ABCDEF" //문자를 특정 개수 만큼 기존 문자열 뒤에 추가 s.append(3,'a'); //s = "ABCDEFaaa" //문자열의 지정된 인덱스 부터 특정 개수를 복사해..
Quartz 1.8.6 Spring3.X 프로젝트에서는 Quartz 2.X 이상을 지원하지 않아서 보통 Quartz 1.8.6을 많이 사용합니다. http://www.quartz-scheduler.org/downloads/ Downloads www.quartz-scheduler.org Maven pom.xml org.springframework spring-core 3.1.2.RELEASE org.springframework spring-context-support 3.1.2.RELEASE org.springframework spring-tx 3.1.2.RELEASE org.quartz-scheduler quartz 1.8.6 Spring 3.X 에서 quartz를 사용하기 위해 1.8.6 버전으로 사용..
MySQL 콘솔 접속 mysql -u root -p :루트 패스워드 입력 데이터베이스(DB) 확인 show databases; 사용자(user) 확인 select * from mysql.user; tester 계정 추가 create user 'tester'@'localhost' identified by 'testerpw'; -- localhost에서만 접속 가능한 아이디:tester 패스워드: testerpw 으로 계정 생성 create user 'tester'@'%' identified by 'testerpw'; -- 모든 아이피에서 접속 가능하도록 아이디:tester 패스워드: testerpw 으로 계정 생성 create user 'tester'@'192.168.0.100' identified by ..