목록전체 글 (332)
삶 가운데 남긴 기록 AACII.TISTORY.COM
네임 스페이스(name space) 전역 유요 범위 안에 함수나 변수 객체들을 선언하면 라이브러리나 규모가 큰 프로그램을 만들 때 이름이 겹칠 우려가 있습니다. 네임 스페이스는 변수 이름과 함수이름을 한 곳에 모아서 충돌을 방지하는 방법입니다. 객체를 네임 스페이스로 활용 객체를 전역 변수로 하나 생성하고 그 객체에 프로그램 전체에서 사용하는 모든 변수와 프로퍼티를 정의하는 방법입니다. 함수를 네임 스페이스로 활용 함수 안에서 선언된 변수의 유효 범위는 함수 내부이기 때문에 함수 바깥에서는 읽거나 쓸 수 없는 성질을 이용하는 방법입니다. 모듈 패턴 showName 메서드는 getName을 참조하고 있고 setName 메서드는 name을 참조하고 있습니다. 지역변수 name과 지역함수 getNmae은 클로..
실행 가능 코드(Excutable Code) 실행 가능 코드를 만나면 Evaluation 해서 Execution Context로 만듭니다. window object 에 정의 된 함수 일반 함수 eval() : 일반적인 함수와 다르게 동적인 환경에서 실행 Execution Contexts 는 실행에 필요한 모든 정보를 관리합니다. 렉시컬 환경 컴포넌트(LexicalEnvironment Component) 함수 블록의 유효범위 안에 있는 식별자와 그 결과값이 저장되는 곳입니다. 식별자와 그 값을 가리키는 키쌍으로 바인드해서 렉시컬 환경 컴포넌트에 기록합니다. 환경 레코드(Environment Record) 유효 범위 안의 식별자를 기록하고 실행하는 영역. 식별자와 결과값을 바인드해서 환경 레코드에 기록합니다..
window 객체의 대화 상자 //인수로 문자열을 받아 경고 대화 상자를 표시 alert("경고"); //인수로 질문 제목을 받아 문자열을 입력 받는 대화상자를 표시 prompt("입력 하세요."); //인수로 확인 제목을 받아 '확인' , '취소' 버튼이 있는 대화 상자를 표시 //확인 을 누르면 true가 리턴되고 취소를 누르면 false가 리턴됩니다. confirm("실행 하시겠습니까?"); console 객체 주요 메서드 console.error() 오류 메시지 출력 console.info() 메시지 타입 로그 출력 console.log() 일반 로그 출력 console.time() 처리 시간 측정용 타이머 시작 console.timeEnd() 처리 시간 측정용 타이머 정지시키고 흐른 시간 밀리 ..
부동 소수점 실수 계산의 정확도 문제 64비트 부동 소수점 규격 부호: 1비트, 지수 부분: 11비트, 가수 부분: 52비트 유효 소수점 자리수가 2의 53승 이므로 약 10의 16승 즉, 16자리가 유효한 자릿수입니다. 부동 소수점으로 계산하면 오차가 발생합니다. 일반적으로 가까운 두 수를 뺄 때 정밀도에 손실이 일어납니다. Math.sqrt(10001) - Math.sqrt(10000); //유효자리가 16자리에서 12자리로 줄어듭니다. //이런 경우 아래 처럼 바꾸어 정밀도 손실을 피할 수 있습니다. 1 / (Math.sqrt(10001) + Math.sqrt(10000)) 10진수로 정확하게 딱 떨어지는 값도 계산 결과가 어긋나는데 내부적으로는 이진수로 계산하기 때문입니다. var a = 0.16..
리터럴로 객체(object) 생성 예제 var card1 = {suit:"클로버", rank:"Q"}; var card2 = {"suit":"하트", "rank":"K"}; //object의 값을 불러올때는 .키값 이나 대괄호[] 안에 키값을 사용합니다. console.log(card1.suit); console.log(card2["rank"]); //object에 새로운 property를 추가 삭제 할 수 있습니다. card1.value = 11; console.log(card1); //{suit:"클로버", rank:"Q", value:11} delete card1.rank; console.log(card1); //{suit:"클로버", value:11} //property 존재 확인 console...
Symbol() 기존에는 상수로 상태값을 표현해 왔습니다. var NONE = 0; var BLACK = -1; var RED = 1; 이러한 상태 값들을 Symbol로 표현할 수 있습니다. var NONE = Symbol("none"); var BLACK = Symbol("black"); var RED = Symbol("red"); //Symbol은 유일한 값입니다. console.log(BLACK.toString()); //black 이 출력됩니다. Symbol과 문자열 연결 //Symbol.for()를 이용하면 전역 레지스트리에 심벌이 만들어 져서 공유할 수 있습니다. let sym1 = Symbol.for("test"); let sym2 = Symbol.for("test"); console.log..
공백문자(스페이스 한 칸) 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
https://aacii.tistory.com/359 프린세스 메이커 2 1999점 득점 공략도스판 기준 1999점 득점 공략은 여왕+왕자와의 결혼입니다. 무사 수행과 세이브-로드 노가다가 필요한 공략이라 실제 플레이 시간이 오래 걸립니다. 모성 수치가 게임상에서 표시 안되어서 에디blog.aacii.net 딸의 생일최고득점 앤딩을 노릴 때 9월 30일의 생일이 좋은 편입니다.왜냐하면 10월에 수확제가 있기 때문에 10월 31일 날 엔딩이 나오기 때문이죠. 혈액형혈액형은 여왕만들때는 A형으로 갑니다.다른 혈액형도 나름대로의 장점이 있으나 A형의 월 도덕심 +3이 워낙 큽니다. 도덕심 9= 1 페이즈(성당 또는 가정교사)인데, 이는 감성+12=시집 한 개 보다 훨씬 비싸거든요. 그래서 스트레스를 감수하더라..