[Kotlin] 6. 코틀린 확장 함수와 표준 라이브러리 활용
·
프로그래밍 언어/Kotlin
1. 확장 함수(Extension Function)확장 함수는 기존 클래스에 새로운 함수나 속성을 추가하는 방법입니다. 클래스 코드를 수정하지 않고도 메서드를 추가할 수 있어 매우 유용합니다.(1) 확장 함수 정의fun String.addExclamation(): String { return this + "!"}val greeting = "Hello"println(greeting.addExclamation()) // "Hello!"this는 확장 함수가 호출되는 객체를 나타냅니다.확장 함수는 기존 클래스의 멤버처럼 사용할 수 있습니다.(2) 확장 함수 활용문자열의 확장 함수fun String.isEmail(): Boolean { return this.contains("@") && this.co..
[Kotlin] 5. 컬렉션과 함수형 프로그래밍
·
프로그래밍 언어/Kotlin
이전 글에서는 코틀린의 클래스와 객체를 다뤘습니다. 이번에는 코틀린의 컬렉션(List, Set, Map)과 함수형 프로그래밍의 핵심인 람다식과 고차 함수를 배워 보겠습니다.1. 컬렉션(Collection)코틀린의 컬렉션은 크게 읽기 전용과 변경 가능으로 나뉩니다. 컬렉션에는 List, Set, Map이 포함됩니다.(1) 리스트(List)읽기 전용 리스트listOf로 선언하며, 요소를 변경할 수 없습니다.val fruits = listOf("Apple", "Banana", "Cherry")println(fruits[0]) // "Apple"println(fruits.size) // 3변경 가능한 리스트mutableListOf로 선언하며, 요소를 추가, 삭제, 변경할 수 있습니다.val fruits = mu..
[React] React의 기술적인 특징
·
프론트엔드/React
React의 기술적인 특징 세 가지컴포넌트를 기반으로 UI를 표현화면 업데이트 구현이 쉬움화면 업데이트가 빠르게 처리됨 1. 컴포넌트 기반 UI컴포넌트는 React의 핵심 building block입니다UI를 독립적이고 재사용 가능한 조각들로 나눌 수 있습니다예시: 버튼, 카드, 네비게이션 바 등을 각각의 컴포넌트로 만들 수 있습니다// Button 컴포넌트 예시const Button = ({ onClick, children }) => { return ( {children} );}; 2. 쉬운 화면 업데이트 구현상태(state) 관리를 통해 데이터 변경 시 자동으로 화면이 업데이트됩니다useState, useReducer 등의 Hook을 사용해 간단하게 구현 가능합니다const..
[Kotlin] 4. 클래스와 객체
·
프로그래밍 언어/Kotlin
이전 글에서는 조건문과 반복문을 배웠습니다. 이번에는 코틀린의 객체지향 프로그래밍 개념을 다뤄보겠습니다. 클래스, 생성자, 속성, 메서드를 이해하고 실제 객체를 다루는 방법을 배워봅시다.1. 클래스(Class)클래스는 객체를 정의하는 청사진입니다. 코틀린에서는 class 키워드를 사용하여 클래스를 정의합니다.기본 클래스 정의class Person { var name: String = "" var age: Int = 0 fun introduce() { println("Hi, my name is $name and I am $age years old.") }}객체 생성Person 클래스를 사용하여 객체를 생성하고 속성과 메서드를 사용할 수 있습니다.val person = Pe..
[Kotlin] 3. 조건문과 반복문
·
프로그래밍 언어/Kotlin
조건문과 반복문이전 글에서는 코틀린의 변수, 자료형, 함수에 대해 배웠습니다. 이번에는 프로그램의 흐름을 제어하는 조건문과 반복문을 다루어 보겠습니다.1. 조건문코틀린은 전통적인 if와 else 외에도 when이라는 강력한 조건문을 제공합니다.(1) if 조건문if는 자바와 비슷하게 동작하며, 표현식으로 사용할 수도 있습니다.val number = 10// 기본 사용if (number > 0) { println("Positive number")} else if (number == 0) { println("Zero")} else { println("Negative number")}// 표현식으로 사용val result = if (number > 0) "Positive" else "Negat..
[Kotlin] 2. 변수, 자료형, 함수
·
프로그래밍 언어/Kotlin
1. 변수 선언코틀린에서는 두 가지 방식으로 변수를 선언할 수 있습니다: val과 var.(1) val: 읽기 전용 변수val은 한 번 값을 할당하면 변경할 수 없는 읽기 전용 변수를 만듭니다. 자바의 final 키워드와 유사합니다.val name = "Kotlin" // 값 변경 불가println(name)// name = "Java" -> 컴파일 오류!(2) var: 변경 가능한 변수var은 값을 변경할 수 있는 가변 변수를 만듭니다.var age = 25println(age)age = 26 // 값 변경 가능println(age) 2. 자료형코틀린은 변수의 자료형을 자동으로 추론합니다(타입 추론). 하지만 필요하다면 명시적으로 자료형을 지정할 수도 있습니다.기본 자료형Int: 정수형Double: 실..
[Kotlin] 1. 코틀린이란 무엇인가?
·
프로그래밍 언어/Kotlin
코틀린(Kotlin)이란?코틀린은 JetBrains에서 개발한 현대적 프로그래밍 언어로, JVM(Java Virtual Machine)에서 실행되는 언어입니다. Java의 대체 언어로 주로 사용되지만, Android 앱 개발, 서버 개발, 그리고 멀티 플랫폼 애플리케이션 개발에서도 활발히 활용되고 있습니다. 특히, 간결하고 안전한 문법 덕분에 많은 개발자들 사이에서 인기를 얻고 있습니다.코틀린의 주요 특징1. 간결한 문법불필요한 코드가 줄어들고 가독성이 뛰어납니다.// Javapublic String greet(String name) { return "Hello, " + name;}// Kotlinfun greet(name: String) = "Hello, $name"2. Null 안정성NullPo..
[Kotlin Spring] 스프링 스케줄러를 이용한 매일 오전 3시 작업 예약하기
·
백엔드/Kotlin + Spring
서론이전에 뉴스 기사 스크래핑 및 요약 기능을 구현한 후 자동화를 시키기 위해 스프링 스케줄러를 사용하기로 했다.목표는 최신 뉴스 기사 스크래핑 및 요약을 매일 사람들이 이용하지 않는 시간대에 업데이트하는 것이다.  Spring Scheduler스프링의 스케줄러는 특정 시간에 특정 작업을 자동으로 실행하게 해주는 기능이다.1. 기본 설정@Configuration@EnableSchedulingclass JpaConfig  2. 주요 어노테이션@Scheduled 어노테이션을 사용하면 된다.@Componentclass ScheduledTasks { // 1. 고정 간격으로 실행 @Scheduled(fixedRate = 5000) // 5초마다 fun reportCurrentTime() { ..
티스토리 블로그 챌린지 중간 점검
·
기타
2024.10.31 - [기타] - [이벤트] 티스토리 오블완 챌린지 [이벤트] 티스토리 오블완 챌린지티스토리에서 이벤트를 한다. fun main() { println("오늘 블로그 완료!")} 챌린지 이름은 오블완 2024.11.07 ~ 11.273주 동안 매일 블로그를 한 개씩 쓰는 챌린지이다. (거의 네이버 블첼) 코딩 블로그를campus-coder.tistory.com 이전에 발행한 포스팅 하나 넣고 시작하기. 티스토리 오블완 챌린지를 시작하고 요즘 개발 블로그를 매일 한 개씩 작성하고 있다.지금까지는 이전 프로젝트에서 사용했던 기술, 현재 프로젝트에서 사용했던 기술들을 정리하는 시간을 가졌다. 블로그 챌린지 한번 시작하니 멈출 수가 없는 느낌이다.3번 정도까지는 재밌게 쓴 것 같은데, 일주일이 ..
[Kotlin Spring] Relogging - 뉴스 기사 스크래핑하기 (크롤링과 스크래핑 차이)
·
백엔드/Kotlin + Spring
1. 서론Relogging 프로젝트에서 뉴스 기사를 스크래핑한 후 ai를 통해 요약하고 원문을 보고 싶다면 원본 사이트로 리다이렉션 하는 기능을 구현하자는 아이디어가 나왔다. 토스 증권의 뉴스 3줄 요약 기능을 참고하여 아이디어를 얻었다. 크롤링과 스크래핑 차이웹 크롤링은 웹 페이지의 링크를 타고 계속해서 탐색을 이어나가지만, 웹 스크래핑은 데이터 추출을 원하는 대상이 명확하여 특정 웹 사이트만을 추적한다는 차이점이 있다. 참고: https://blog.hectodata.co.kr/crawling_vs_scraping/ 2. 리소스 Selector 경로 얻기내가 이전에 작성했던 블로그 포스팅의 내용을 스크래핑해 보도록 하겠다. 리소스의 위치가 고정되어 있는 경우 이런 방법을 통해 스크래핑할 수 있다. ..