프로그래밍 공부 5

[매일 매일 코틀린] 수신객체 지정람다 : with

수신객체 지정람다 : with 수신객체 지정람다 : with 다음 링크 https://www.acmicpc.net/blog/view/71 코드예제 1000 번 문제 참고 import java.util.* fun main(args: Array) = with(Scanner(System.`in`)) { println(nextInt() + nextInt()) } 최상위 수준 함수 fun main() : 코틀린에서는 클래스 선언 없이 메인 함수를 정의하여 사용할 수 없다. 메인 함수 뿐만 아니라 일반적인 함수도 클래스 선언 없이 정의해서 사용할 수 있다. 코틀린 컴파일러는 이같은 동작을 위해서 내부적으로 클래스를 대신 만들어준다. 예를 들어 위 코드가 Test.kt 라는 이름의 파일에 작성되어 있다면 TestKt..

JavaScript 변수 선언 키워드(var, let, const)

JavaScript 변수 선언 키워드(var, let, const) 1. var 키워드 초기 자바스크립트에서 변수 선언 키워드는 var만 존재하였다. 초기에는 var 키워드만을 가지고도 정상적으로 코딩할 수 있었다. 그러나 시간이 지나며 var 키워드가 동작하는 특징과 관련하여 문제가 되는 경우들이 발생했다(호이스팅 기술과 관련되었음). 이러한 문제를 수정하기 위해 ECMA6 부터 let과 const와 같은 새로운 변수 선언 키워드가 등장하게 된다. 호이스팅(Hosting) 호이스팅 기술은 var 키워드로 변수를 선언하기 전에 해당 변수에 값을 할당할 수 있게 하는 기술이다. a = 10; // var 키워드로 변수 선언 전에 값 할당이 가능하다. console.log(a); var a; 호이스팅은 영어..

Ajax(Asynchronous JavaScript and Xml)

Ajax(Asynchronous JavaScript and Xml) Ajax 는 비동기 자바스크립트와 xml을 뜻한다. 비동기(Asynchronous)라는 말은 웹브라우저가 서버에 자료를 요청할 때 화면이 갱신되지 않고, 자료를 요청하며 전달받을 수 있음을 의미한다. 1. 비동기(Asynchronous)의 의미 비동기(Asynchronous)라는 말은 함수 호출이나 서버에 자료 요청시 함수가 반환될 때까지(서버가 응답할 때 까지) 기다리지 않고 바로 다음 코드를 실행하는 것을 의미한다. 함수를 호출하게 되면 바로 반환된다. 여기서 반환값은 존재하지 않는다. 대신 실제로 함수를 실행하는 다른 스레드에서 코드 실행이 완료되면 콜백 함수 호출의 형태로 함수 실행결과를 전달하게 된다. 2. Ajax의 기본 함수..

자바 NIO 기반 입출력 및 네트워킹 1

들어가며 이 글은 "이것이 자바다"(신용권, 한빛미디어) 도서를 읽고 공부한 것들을 정리한 내용입니다. 잘못된 내용이 있을 수 있으며, 관련 내용을 지적해주신다면 정말 감사하게 듣겠습니다!! 1.0 NIO 소개 NIO(New Input / Output)은 자바 4에서부터 소개된 API이며, 자바 7에서는 조금 더 버전 업이 된 NIO.2 API가 소개되었다. IO와 NIO의 차이점 IO NIO 블로킹 여부 블로킹만 지원 블로킹, 넌블로킹 모두 지원 비동기 여부 비동기 지원하지 않음 비동기 지원 버퍼 사용 사용하지 않음 사용 입출력 방식 스트림 방식 채널 방식 채널 방식 입출력 IO에서는 스트림 방식의 입출력을 사용한다. 스트림은 한쪽 방향으로만 흐르는 특성이 있기 때문에, 한 파일에 대해 읽고 쓰기 위해..

[c++] ios_base::sync_with_stdio(false)

오늘 백준 문제를 풀다가 알게된 사실. c++ 의 표준 입출력(iostream)에서 주로 입출력의 속도를 향상시키기 위해 다음과 같은 코드를 맨 상단에 적는데,ios_base::sync_with_stdio(false) 백준에서 문제를 풀다가 이 코드가 있고 없고에 따라서 오답과 정답으로 채점되는 경험을 했다. 무엇이 문제인고 하니, ios_base::sync_with_stdio(false) 과 같이 입력을 하면 iostream의 입출력 기능과 stdio 의 입출력 기능을 섞어서 사용하면 잘못된 결과가 나타날 수 있다는 것이었다. 해당 코드에는 cin, cout, getchar()가 사용되고 있었다. ios_base::sync_with_stdio() 에 대해서 찾아보니 이 함수는 표준 c++스트림과 c 스..