목록분류 전체보기 (47)
MSM8994의 화룡점정 블로그
지난 주말 캐나다 몬트리올에서 열린 IETF 해커톤에 참여한 애플, 클라우드 플레어, 패스틀리, 모질라 출신 엔지니어가 TLS 1.3에도 들어가지 못한 SNI 암호화 확장 구현을 위해 힘썼습니다. HTTPS 통신에서 서버와 통신을 하는 과정에서 서버를 식별하는데 필요하지만 암호화 되지 않은채 전송되는 서버 이름 특정(SNI)이 무엇인지는 지난 글에서 잘 소개되어 있습니다. 보통 도메인은 서버 하나의 IP에 연결해 두는데, 그 경우 브라우저가 어느 서비스로 들어오려는건지 서버에선 판단할 수 없습니다. 그래서 SNI필드라는 TLS 확장을 사용해 접속할 서비스가 여기라고 초장부터 선언하는 것입니다. SNI 차단이 뭐야? TLS 1.3은 해결책이 될 수 있을까.http://msm8994.tistory.com/3..
2중 배열은 배열을 배열에 담은 것인 다중 배열이기에 각 배열끼리는 다른 객체가 되기 때문입니다.메모리에서 연속된 곳에 저장되어 있지 않는 것이지요.사람들이 2중배열을 2차원을 표현하는데 쓴다고 2차원 배열이라고도 하는데그렇게 생각해버리시면 [1][0]이 [0][8]의 다음 원소라거나 9번째 원소라고 생각하시게 될겁니다.그래서 저는 이걸 잘못 생각한다고 봅니다. C에서 쓰이는 malloc실행 - free실행 처럼 자바에서는 new실행 - null등 다른거 할당 을 통해 그 변수가 참조할 객체를 동적으로 생성하고 소멸시킬 수 있습니다.참조형 변수(레퍼런스 타입)는 객체 자체가 아니라 그 객체를 가리키는 주소가 그 변수에 들어있고 객체는 메모리 어딘가에 있다고 들어보셨을겁니다.2중배열도 같습니다. a라는 변..
여기서는 해당 수를 문자열로 변환해 3 6 9 인 문자 갯수대로 "짝"을 출력하거나 없는 경우 수를 출력하여 다음으로 넘어갑니다. cnt
최대 별 수와 현재 별 수, 그리고 증가/감소 여부만을 아는 변수를 이용하여 같은 반복문을 초기화, 조건, 증감식만 바꿔 작성하지는않은 별찍기1 코드입니다. int maxStars = 5;// 최대 별 수 int currentStars = 1;// 그려야할 별 수 boolean plusSW = true;// 별 수가 증가해야할지 감소해야할지 알게 하는 논리변수 while(currentStars > 0) { // 현재 별 수가 0 초과일 때 for(int colSpc = 1; colSpc
아래 코드는 2단부터 9단까지 단마다 9단까지 계산해 적으면서 한 줄에 4단씩 배치 int startDan = 2;// 시작 단 int endDan = 9;// 끝 단 int danPerLine = 4;// 한 줄에 출력할 단수. int maxGudan = 9;// 계산할 구단수 for (int dadan = startDan; dadan
안녕하세요. Math.round(실수)가 소수점 첫째 자리에서 반올림해 가까운 정수를 내놓는다는 것은 알고 계실 겁니다.5를 3으로 나누면 1.66666666666666666 .... 이 계산되어 나옵니다.이 수를 1.667로 반올림하려면 어떻게 하면 될까요? Math.round(result*1000)/1000. 매개변수에 10의 N제곱 만큼 곱해 소수점을 N번 뒤로 밀어 Math.round()로 반올림한 다음그 결과를 10의 N제곱 만큼 나누어 소수점을 N번 앞으로 당기면 됩니다. 1.66666666666666 에 10의 3제곱 1000을 곱해서1666.66666666666 로 만듭니다. 여기서 Math.round()를 실행시키면1667 로 반올림된 정수가 반환됩니다. 이 결과를 10의 3제곱 1000..
1부터 10까지 합과 홀수 합과 짝수 합을 식과 모두 표시하려면 그냥 합, 홀수 합, 짝수 합 이렇게 3개의 반복문을 써도 되겠지만 코드 분량이 늘어나게 되므로 여기서는 한 반복문으로 하도록 하겠습니다. 반복중 발생하는 내용을 바로 출력하는 콘솔출력만으로는 내용이 섞여 달성하기 힘드실 것입니다. 문자열 변수를 만들어 여기에 식을 적도록 하면 간단히 해결할 수 있습니다. ※1 String을 초기화하지 않으면 글자를 붙일 수 없고 null로 초기화하면 실행도중 오류가 발생하게 됩니다. 따라서 빈 문자열로 초기화했습니다. ※2 여기서 조건으로 나오는 메소드는 String 객체에 공통으로 있는 isEmpty() 인데요, null이 아닌 문자열 객체에 아무 글자도 들어있지 않는지를 (String.length() ..
차를 몰고 다니다보면 주차선 안에 세우지 못하는 경우가 종종 있습니다. 공간이 좁다거나 가득 찼다거나 하는 문제 등으로 말이죠. 그럴 때마다 다른 사람을 배려하는 마음에서 연락처를 앞유리에 붙이실텐데요. 혹시 이런 걱정을 해보신 적은 없나요? 내 전화번호를 누가 수집해서 아는척이라도 하는거 아닐까? '누가 그런걸 하겠냐?ㅋ'라고 웃어 넘길 수도 있고 모르는 사람으로부터 문자나 전화, 카카오톡 메시지가 올 때마다 '어떻게 안 거지?'하며 마음 졸이시는 분도 계시겠죠. 아무래도 그동안의 시달림에 전화번호를 바꾼지 얼마 안되신 분이라면 걱정이 크실텐데요. 차량과 번호판도 바꿨으면 싶지만 이러러면 돈 모아야하는 것도 그렇고 너무 많은 고생을 해야합니다. 안심번호라고 아시나요?그런 분들에게 조금이나마 도움이 될 ..
!= 가 아니라 ≠라고? 코딩을 하다보면 ≠라는 글자를 어떻게 입력하지 라고 생각하시는 분들이 보입니다. 하지만 ㄷ 한자 9 로 저걸 입력한다면 실행도 못한 채 오류가 날 겁니다. 이 글자 왜 안되지? 이 현상은 어떤 글꼴을 사용할 때 여러 글자가 하나로 합쳐져서 다른 모양의 글자를 만들어내는 ligature(합자) 기능 때문에 일어납니다. https://en.wikipedia.org/wiki/Typographic_ligature원래 합자 기능은 글을 더 예쁘게 보이게 하려고 만들어진 기능입니다. D2Coding 도 1.3부터 이런 합자 기능이 지원되는 글꼴이 되어 !=나 >=, ->, =>, === 등에서 입력한 것과 다른 모양의 글자가 나타나게 되었습니다. https://github.com/naver..
여러분은 웹사이트를 돌아다니다 아래와 같은 창을 보셨을겁니다. 윈도 브라우저에서 알림 권한을 요구하는 웹페이지 예시 또는 폰에서 웹서핑을 하다가 이런 창이 떴는데 잘못해서 허용을 누르셨을지도 모르겠네요. 안드로이드 크롬에서 알림 권한을 요구하는 웹페이지 예시 이런 웹사이트들은 바로 웹사이트가 원하는 아무 때나 알림을 띄울 수 있는 알림 API를 사용한 페이지입니다. 어느날부터 가끔씩 아니 자주 화면 오른쪽 아래 구석에 이런게 뜨는걸 보고 계셨을지도 모르겠네요. 윈도 크롬에서 띄우는 알림 메시지 예시 안드로이드 크롬에서 띄우는 알림 메시지 예제 이런 알림들은 그 웹페이지를 열지 않아도 뜨고 심지어는 크롬 같은 웹브라우저가 꺼져있을 때 뜨기도 합니다. 얘네들이 어디서 오는건지 몰라 끙끙 앓으시는 분들은 여기..