분류 전체보기(114)
-
코틀린 기본 문법 - 쓰레드
# 쓰레드의 개념 - 프로그램은 하나의 메인 쓰레드(실행 흐름)가 존재함- 하나의 메인 쓰레드는 fun main() (메인 함수)를 의미- 실습 프로그램은 메인 쓰레드 위에서 로직을 실행해 동시 처리가 불가능했음- 별도의 자식 쓰레드를 생성하여 동시에 로직 실행 가능- 코틀린은 thread 키워드로 쓰레드 생성 가능 # 쓰레드의 구조- 프로세스: 프로그램이 메모리에 올라가서 실행되는 것 = 프로세스 1개- 쓰레드는 프로세스 안에서 더 작은 작업의 단위를 의미- 쓰레드는 생성되어서 수행할 때 각 독립된 메모리 영역인 STACK을 가짐- 즉, 쓰레드를 한 개 생성하면 스택메모리의 일정 영역을 차지 # 예시 코드- 1부터 10까지, 50부터 60까지 출력하는 코드를 2개의 쓰레드로 경쟁- 1초마다 CPU 자..
2024.06.12 -
코틀린 기본 문법 - 비동기 프로그래밍
# 비동기/동기 프로그래밍의 개념- 비동기 프로그래밍: 요청을 보내고 결과값을 받을 때까지 멈추지 않고 다른 일을 수행 => 다양한 일을 한꺼번에 수행- 동기 프로그래밍: 요청을 보내고 결과값을 받을 때까지 작업을 멈춤 => 앞선 작업에 영향을 받으며 한 가지씩 작업 수행
2024.06.12 -
코틀린 기본 문법 - 확장 함수
# 확장 함수의 개념- 코틀린에서는 자바와 달리 외부에서 클래스의 메소드를 추가할 수 있음- 과도하게 사용하면 코드의 가독성을 해칠 수 있지만 장점도 존재함- 원하는 메소드가 있지만 내가 설계한 클래스가 아닐 때 외부에서 메소드를 관리함- 내 목적을 위해 외부에서 관리하기 때문에 원본 클래스의 일관성을 유지할 수 있음 # 예시 코드- 이름, 나이만 조회하는 메소드에서 등급을 조회하는 메소드를 추가하고 싶을 때 fun main() { // 확장함수를 통해 getGrade() 메소드를 추가해줌으로써 등급도 조회가 가능함 fun Student.getGrade() = println("학생의 등급은 ${this.grade} 입니다") var student = Student("참새", 10, "A+") ..
2024.06.12 -
온라인 쇼핑 트렌드 리포트 2024
출처: 오픈서베이 주제: 알리/테무, 정말 쿠팡/네이버 위협할까? 소비자 평가 살펴보기 요약- 온라인상에서 쿠팡과 네이버쇼핑의 양강구도가 여전히 유지되고 있지만(주 구매 플랫폼 쿠팡 44.7%, 네이버 21.8%), 알리와 테무가 인지율을 기반으로 급부상하고 있음(알리 2.0%, 테무 1.0%)- 쿠팡과 네이버에서는 생활용품과 식료품을 주로 구매하여 가장 빈번하게 구매가 일어나고(쿠팡 주 1.51회, 네이버 주 0.85회), 알리에서는 사무/문구/취미용품, 테무에서는 패션 제품을 주로 구매함(알리 주 0.59회, 테무 주 0.84회)- 알리와 테무에서 공통적으로 합리적인 가격에 대한 만족도가 높았으나, 배송 및 상품 품질, 포장 상태 등에 대한 불만 또 한 존재했음- 과거 네이버쇼핑에서 구매하던..
2024.06.12 -
코드카타 - 음양 더하기
문제 설명 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 제한사항 absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다.입출력 예 absolutes signs result [4,7,12] [true,false,true] 9 [1,2,3] [false,false..
2024.06.12 -
Kotlin 기본 문법 - 유용한 기능
# 자료형의 변환1) 일반 자료형 간 변환- 숫자 자료형끼리: to자료형() 메서드 활용 가능- 문자열을 숫자로 변환 시: 별도의 메서드 필요 (예: Integer.parseInt(strNum5) var num1 = 20 var num2 = 30.2 var num3 = num2.toInt() var num4 = num1.toDouble() var strNum5 = "10" var strNum6 = "10.21" var num5 = Integer.parseInt(strNum5) var num6 = strNum6.toDouble() println("num3: $num3") println("num4: $num4") println("num5: $num5") ..
2024.06.11