질문 객체와 구조체의 차이점은? 클래스는 상속지원&참조 형식, 구조체는 값 형식, 상속 및 메소드 지원 하지 않음. 함수가 자료구조 안으로 들어오면 어떤 장점이 생기는가? 왜 정보 은닉은 객체 기반에서만 가능한가? 밖에서 사용 할 수 없게 선언 var time:Double private Set 4클래스란? 변수와 메소드를 가지는 타입을 정의하는 단위 클래스 선언 class Person{ //프로퍼티 var firstName: String = "" var familyName: String = "" var age: Int = 0 //메소드 fun fullName() = "$firstName $familyName" fun showMe() { println("${fullName()}: $age") } } 객체의..
분류 전체보기
왜 함수 내 함수 사용 이유 파라미터? 왜 패키지 이유 모듈별로 구분, 협업에 용이 왜 자바에는 없는 코틀린의 기능(범위: '..' 'unitl' ',') (소속: 'in') Kotlin 함수의 예 import kotlin.math.PI // kotlin.math 패키지에서 PI 상수를 가져옴 fun circleArea(radius: Double): Double { //함수의 정의 return PI*radius*radius } fun main() { print("Enter radius: ") val radius = readLine()!!.toDouble() println("Circle area: ${circleArea(radius)}") } fun circleArea(radius: Double): Dou..

var/val(불변) 왜 구별할까 변하는게 많으면 문제를 잃으킬 확률이 높다. 코드분석에 용이 프로그램의 안정성과 코드 분석의 용이함을 증가시키기 위해 사용 Kotlin은 기본 자료형도 객체 취급을 한다. 왜? 이는 이러한 자료형도 메소드를 호출하고 속성에 접근할 수 있도록 하기 위함이다. 이로써 기본 자료형과 객체의 차이로 인한 혼동을 줄이고 통일성을 확보할 수 있다. Kotlin은 Java와 JVM에 가깝지만, Kotlin은 Java보다 더 높은 수준의 추상화 계층을 가지고 있다. 코틀린은 jvm사이에 필터(추상화계층)가 있다.java에서 객체면 jvm도 객체/ 코틀린은 중간에 층에서 변환 가능 모든 것을 객체로 표현하는 이유 Kotlin은 "모든 것이 객체" 철학을 적용하여 간결하고 일관된 프로그래..
(1)내장 톰켓을 가진다. 톰켓을 따로 설치할 필요 없이 바로 실행가능하다. Socket: 운영체제가 가지고 있는 것 A와 B가 통신한다. A가 5000번 소켓을 오픈하면 B가 ip주소:5000와 포트번호를 넣고 연결한다. 그러면 A와 B는 통신이 가능하다. 그런데 이러면 C가 A랑 통신을 하고 싶은데, 5000번은 이미 사용하고 있으므로 C는 5000번으로 연결을 못한다. 최초의 5000번 포트는 연결용도로만 쓰고 main쓰레드(새로운 사용자의 요청을 받음)가 됨, 연결이 되는 순간 새로운 소켓(5001)을 만든다. 그러면 A는 5000번 과의 연결은 끊기고 5001로 B와 통신한다. 이때, 5001은 스레드1을 만드는데, 이때 C는 5000번에 접근할 수 있는데, 그러면 5000번이 새로운 소켓을 ..
JPA는 Java Persistence(영속성) API이다. ex) 램은 휘발성. 이 데이터를 하드디스크에 기록하면 비휘발성이므로 영구저장됨. 영구히 기록되는게 Persistence. 자바는 데이터 저장을 DBMS로 관리한다. JPA는 자바에 대한 데이터를 영구히 기록할 수 있는 환경을 제공하는 API API란? Application -> 프로그램 Programming ->프로그래밍을 통해서 프로그램 만듬 Interface ->이걸 통해서 프로그래밍 약속(프로토콜 vs 인터페이스) 프로토콜: 약속 - A,B,C의 권리가 동등하다. B가 강압할 수 없다. 서로가 모두 동의 할 수 있는 것 vs 인터페이스: 약속 - B가 힘이 셈. B가 만든 규칙을 A와 C가 무조건 따라야 한다. 즉, B가 규칙을 정할 때..

스프링은 프레임워크이다 프레임워크:틀 안에서 동작. 틀을 맞춰줄테니 틀에 맞춰서 개발해라 스프링은 오픈소스이다 내부를 뜯어고칠 수 있다. + 무료 스프링은 IoC(Inversion of Controller = 제어의 역전) 컨테이너를 가진다. 개발자가 객체 생성과 관리를 스프링에 위임하는 것을 의미합니다. 주도권이 스프링에 있다. 클래스: 설계도 오브젝트: 실체화가 가능한 것 인스턴스: 실체화 된 것 가구(클래스-추상적) - 의자,침대(오브젝트) - 인스턴스 오브젝트를 new로 해서 heap 메모리에 올린다. 의자 s = new 의자(); s는 레퍼런스 변수가 되고, s는 메서드가 실행되는 동안만 사용됨. 다른 메서드에서 이 의자를 사용하고 싶으면, 의자 s = new 의자(); 이거를 또 치면 새로운 ..

도구,기계: 정해진 대로 움직임, 명령어 x 프로그래밍(SW): 사람의 일을 도와주고, 컴퓨터가 이해할 수 있는 언어, 명령어의 집합 컴퓨터의 기본 구성 사용자 응용 소프트웨어 = 소프트웨어 시스템 소프트웨어 = 소프트웨어 하드웨어 소프트웨어 좁은의미: 컴퓨터가 일을 처리하기 위해 컴퓨터가 이해할 수 있는 언어로 작성한 명령어들의 집합 넓은의미: 프로그램 + 데이터 + 관련 문서 시스템 소프트웨어 하드웨어를 움직이는 소프트웨어 응용소프트웨어 실행 위한 공통적 기능 제공 소프트웨어 하드웨어 정보/데이터의 전송 및 처리가 실제 일어나는 물리적 실체 컴퓨터 하드웨어의 기본 구성 컴퓨터 하드웨어: cpu, 기억장치(주기억-ram,rom/보조기억-디스크,cd롬), 입출력장치, 전원, 냉각 송풍기 중앙처리장치(Ce..

메인함수 fun main() { print("Hello") } 변수&상수 fun main() { var i = 10 var name = "킴" var point = 3.14 } 코틀린은 타입추론이 된다. 아래와 같은 코드 fun main() { var i:Int =10 var name:String ="킴" var point:Double = 3.14 //상수는 var 대신 val val num = 20 } 톱 레벨 상수 const val 자바와 달리 main함수밖으로 상수를 뺄 수 있다. 이를 톱 레벨 상수라 한다. main()보다 우선으로 컴파일 된다. const val num = 20 fun main() { } 형변환 fun main() { var i = 10 var l = 20L l = i //오류...