Kotlin2011년 JetBrain에서 공개한 언어Java JVM에서 동작함2017년 Google에서 Android application 개발용 공식 언어로 채택2019년 이후 많은 Android application들이 개발 언어로 Kotlin사용Spring framework도 Kotlin을 지원하면서 Server side도 개발 가능2024년 02월 기준 최신 버전은 1.9.22Kotlin을 실행하면 자바의 Class로 변환되어 Java JVM에서 실행된다.웹앱 : 코드는 리액트 네이티브로 HTML과 JavaScript로 작성을 하고 안드로이드와 IOS의 웹뷰(WebView)를 이용하여 앱처럼 보여지게 하는 것크로스플랫폼 : 안드로이드를 코틀린으로 작성하겠다는 것은 안드로이드에 최적화 된 어플리케이..
Flutter나 기타 안드로이드 네이티브 앱 사용 시 카카오 로그인 이용시 키 해시가 필요하다. 이 글 에서는 릴리즈 키를 제외한 디버깅 키 해시 발급 절차에 대해 설명합니다. 윈도우 기준 1. OpenSSL 설치 https://code.google.com/archive/p/openssl-for-windows/downloads openssl-0.9.8e_WIN32.zip 을 다운로드 받아 줍니다. 압축된 파일들을 C:\ 나 아무곳에 풀어줍니다. 2. 시스템 변수 설정 윈도우 창에서 “시스템 환경 변수 편집” 을 클릭 위 창에서 “환경 변수” 클릭 사용자 변수나 시스템 변수에서 “Path” 을 찾아서 더블 클릭 “새로 만들기” 클릭 후 압축을 해제한 폴더의 \bin을 가르키도록 설정 후 저장 OpenSSL..
인터페이스와 다형성 추상 클래스 인터페이스 다형성 내부 클래스 무명 클래스 인터페이스는 클래스와 클래스를 연결하는 기법 추상 클래스 public abstract class Animal { // 추상 클래스 정의 // 추상 메소드 정의 public abstract void move(); // ;으로 종료됨을 유의 } 자바에서는 하나 이상의 추상 메소드를 포함하는 클래스를 “추상 클래스(abstract class)”라고 정의합니다. 이러한 추상 클래스는 객체 지향 프로그래밍에서 중요한 특징인 다형성을 가지는 메소드의 집합을 정의할 수 있도록 해줍니다. 추상 클래스는 동작이 정의되어 있지 않은 추상 메소드를 포함하고 있으므로, 인스턴스를 생성 할 수 없습니다. 추상 클래스 상속 public abstract c..
JWT란? JWT(JSON Web Token) 어떠한 사용자가 아이디와 비밀번호를 사용하여 로그인을 하면,사용자의 정보를 가진 토큰이 발행되어 서버에 요청을 보낼때마다 세션, 쿠키 대신에 JWT 토큰을 이용해서 서버로 보내어 요청을 보낸 사용자가 누구인지 특정을 할 수 있다. JWT의 구조 👉 HEADER . PAYLOAD . SIGNATURE 헤더 내용 서명 Header(헤더) 토큰의 헤더는 typ와 alg 두 가지 정보로 구성된다. alg는 Signature를 해싱하기 위한 알고리즘을 지정하는 것. Payload(페이로드) 토큰의 페이로드에는 **토큰에서 사용할 정보의 조각들인 클레임(Claim)**이 담겨 있다. 클레임은 총 3가지로 나누어지며, JSON(Key/Value) 형태로 다수의 정보를 넣..
상속 상속이란? 상속의 사용 메소드 재정의 접근 지정자 상속과 생성자 Object 클래스 종단 클래스 상속은 코드를 재사용하기 위한 중요한 기법 상속의 개념 상속의 개념은 현실 세계에도 존재한다. 상속의 장점 상속을 통하여 기존 클래스의 필드와 메소드를 재사용한다. 기존 클래스의 일부 변경도 가능(오버라이딩) 상속을 이용하게 되면 복잡한 GUI 프로그램을 순식간에 작성할 수 있다. 상속은 이미 작성된 검증된 소프트웨어를 재사용 신뢰성 있는 소프트웨어를 손쉽게 개발, 유지 보수 가능 코드의 중복을 줄일 수 있다. 상속 부모 클래스를 수퍼 클래스라고 부르고, 자식 클래스를 서브 클래스라고 부른다. 상속의 예 is - a 의 관계 상속의 사용 public class Car { int speed; int gea..
개인 공부 목적 - 참고만 하시는걸 추천드립니다. 오일러 수(e) 아래의 수식을 계산해서 오일러 수(e)를 출력하시오. (수식) e = 1 + 1/1! + 1/2! + 1/3! + … (출력예) e=2.718.. (Hint) fact(n:int)->int 함수를 만들어 사용 def fact(n:int) -> int: # 팩토리얼 구하는 함수 res = 1 for i in range(n, 0, -1): res *= i return res def oil(n:int) -> float: # 오일러 수 구하는 함수 res = 1 for i in range(1, n+1): res += 1/fact(i) return res print(oil(100)) 완전수 출력 10000이하의 완전수를 모두 출력하시오. 완전수 =..
개인 공부 목적 - 참고만 하시는걸 추천드립니다. [다음 입사문제] 최근접쌍 1차원의 점들이 주어졌을 때, 그 중 가장 거리가 짧은 것의 쌍을 출력하는 함수를 작성하시오 예를들어 S=[13, 20, 8, 4, 1, 17, 3] 이 주어졌다면, 결과값은 (3, 4)가 될 것이다. Hint) 정렬 후 인접쌍 거리 체크 def func(lst:list) -> list: tmp = {} lst.sort() for i in range(len(lst) - 1): tmp[lst[i], lst[i+1]] = lst[i+1] - lst[i] return list(min(tmp, key=tmp.get)) print(func([13,20,8,4,1,17,3])) [아마존 면접문제] 정렬 다음과 같은 형태의 배열을 [a1,a..
배열 배열의 선언 배열의 사용 배열과 메소드 객체들의 배열 2차원 배열 정렬과 탐색 자바에서 배열은 객체로 취급됩니다. 배열의 선언과 사용 배열(array) : 같은 타입의 변수들의 모임이다. 배열의 생성 먼저 배열 참조 변수부터 선언 int[] numbers; // 배열 참조 변수 선언 배열을 new 연산자를 사용하여서 생성 numbers = new int[6] // 배열 객체 생성 배열을 선언과 동시에 생성하는 것도 가능 int[] numbers = new int[6]; // 선언과 동시에 배열 객체 생성 어떤 자료형의 배열도 생성이 가능하다. float[] distances = new float[20]; // 실수 배열 char[] letters = new char[50]; // 문자 배열 배열의 ..