일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- java
- 삼성SW역량테스트
- js
- 유니온파인드
- 누적합
- 호이스팅
- 2021 KAKAO BLIND RECRUITMENT
- 프로그래머스
- JavaScript
- 컴퓨터 비전
- Lv3
- 브루트포스
- 백준
- const
- 코틀린
- kotlin
- BFS
- 컴퓨터비전
- dp
- 2022 KAKAO BLIND RECRUITMENT
- 2018 KAKAO BLIND RECRUITMENT
- VAR
- 2023 KAKAO BLIND RECRUITMENT
- 자바
- lv2
- 구현
- level2
- 자바스크립트
- 동적계획법
- level3
- Today
- Total
목록개발 (9)
코드를 느껴바라
Kotlin 클래스 초기화의에는 여러 방법이 존재한다.Kotlin에서는 클래스 초기화를 위해 constructor, init, secondary constructor를 유연하게 조합할 수 있다. 각각의 개념을 명확히 이해하고 올바르게 사용하는 것이 유지보수성과 가독성을 높이는 데 도움이 된다고 하여 정리하여 포스팅을 해본다.1. 주 생성자 (Primary Constructor)Kotlin의 주 생성자는 클래스 선언부에서 함께 정의된다. 값을 객체 외부에서 전달받아 클래스 내부 프로퍼티로 초기화하는 데 사용된다.class Person(val name: String, val age: Int)val 혹은 var 키워드를 사용하면 자동으로 프로퍼티가 정의된다.constructor 키워드는 생략 가능하다.명시적으..
개발하면서 이런 코드 한 번쯤은 봤을 거다.val result = sequenceOf(1, 2, 3).map { it \* 2 }처음 보면 listOf랑 비슷하게 생겼는데, sequenceOf...? 뭐지? 리스트랑 뭐가 다른 거지? 싶다. 나도 그랬다. 그냥 List 쓰면 안 되나? 싶어서 한동안은 신경도 안 썼는데, 이거 은근히 잘 쓰면 성능 최적화에 꽤 유리한 도구다.Sequence가 뭐냐면Kotlin에서 Sequence는 게으르게 계산(lazy evaluation)되는 컬렉션이다.쉽게 말하면, List처럼 값을 들고 있는 게 아니라, 필요할 때마다 원소를 하나씩 꺼내서 계산하는 구조라고 보면 된다. 그러니까 "결과를 지금 당장 다 만들지 않고, 쓰는 시점에서 하나씩 만든다"는 개념.예를 들어, 이..

문제 상황프로젝트 중 창의성을 발휘한 그림에 대해 인식의 필요성이 높아짐그러나 기존 CNN모델에 창의성을 발휘한 그림들을 추가하면 오히려 학습에 악영향을 끼침예시) 소 + 개 => 소개 (기본 CNN모델로는 힘듦)생각한 점ai 모델을 만든다기 보다는 기존의 것을 조합해서 활용해 어느 정도 맞출 수 있을거라 생각함사실상 인간의 창의성도 경우의 수가 무한하진 않다.인간들도 대체로 한정적인 방법으로 문제를 해결함생각되는 창의적인 그림의 예시(예) 소 + 개 = 소개)1. 직관적인 명사의 혼합 (소와 개의 그림으로 조합) 2. 객체들을 혼합하는 방식 (소와 개의 혼합된 그림) 3. 동음이의어인 형용사를 사용해서 표현하는 방식(작을 소 + 개 ⇒ 작은 개)그에 따른 검출법1. 직관적인 명사의 소와 개의 그림으로 ..

계기 🤔기존 이메일로 PR알림이나 리뷰에 대한 알림이 갔는데이메일 특성상 온갖 곳에서 광고나 스팸메일이 많다보니 알림을 켜두기가 어려운 상황이 발생그래서 디스코드로 알림이 오도록 webHook을 설정해서 연동시킴순서1.디스코드에서 서버를 생성하거나 기존 서버를 활용해서 웹후크를 생성해준다.(서버 설정 -> 연동(앱) -> 웹후크-> )2.웹후크 url을 복사해서 알림을 받고 싶은 repository의 설정에 들어간다.(해당 repo의 관리자 권한이 있어야함)payload에는 그냥 복붙만 해주니 400error가 떠서 뒤에 /github해주니 성공했다.그리고 Content Type은 application/json으로 해주고어떤 이벤트가 발생할때 알림을 받을건지 선택할 수 있는데난 개인 설정으로 내가 필요..
Kotlin에서 field란?Kotlin을 쓰다 보면 field라는 걸 볼 수 있는데, 이게 뭘까?field는 Kotlin의 프로퍼티(멤버 변수)가 실제 값을 저장하는 공간이다.쉽게 말하면 프로퍼티의 "진짜 저장소"라고 보면 된다.📌 1. field가 왜 필요할까?Kotlin에서는 프로퍼티를 선언하면 자동으로 getter와 setter가 만들어진다.그런데 커스텀 getter나 setter를 만들 때, 무한 재귀 호출이 발생할 수 있다. ❌ 무한 재귀가 발생하는 코드class Person { var name: String = "Unknown" get() = name // 여기서 무한 루프 발생!}get()이 name을 반환하려고 하지만, name을 다시 호출하면서 무한 루프가 발생한..
코틀린 변수 및 상수일반적으로 우리가 java나 C++같은 프로그래밍언어를 사용하다보면 char, int, float, double, long..... 같이명시적으로 변수타입을 선언해준다. 그러나 코틀린에서는 var, val 같이 타입을 선언해준다.이것에 대해 추가적으로 const까지 설명해보겠다.가변(mutable)변수 : varvar a = "hi";var b = 2025;b = 3000;var c = 4.5; 재할당이 가능한 변수이다.한 번 값을 할당한 후에도 나중에 다른 값으로 변경할 수 있다.그러나 선언한 시점 또는 첫 할당시점에서 변수의 타입은 정해지기에var a = 100; a = "hi"; 이러한 코드는 불가능하다.그러나 이것도 가능하게 할 수 있는데...그것은 바로Any 타입var a: ..
호이스팅이 뭔가?JavaScript에서 변수와 함수 선언이 코드 실행 전에 메모리 공간에 할당되는 현상을 의미한다.앞선 포스팅에서 정리해두었으니 함수호이스팅이나 정보는 이곳으로 가보시길 추천드림.변수 호이스팅변수 호이스팅에서는 변수 선언 키워드에 따라 약간의 차이점이 있다.스코프에 대해서 설명한 포스팅에서도 차이점이 있었던 것을 확인할 수 있었는데각 각의 var, let, const에 대해서 어떻게 변수 호이스팅이 동작하는지 설명해보도록 하겠다.varconsole.log(a); // undefinedvar a = 10;console.log(a); // 10실제 코드가 이렇다 할때첫 로그출력에서는 var a가 호이스팅이 되어 선언자체는 되어서 에러없이 초기값 할당전 값인 undefined로 출력이 된다.그..
호이스팅(Function Hoisting)이란?사전적의미로 '끌어올리다'라는 뜻을 가진다.JS에서도 비슷한 의미로 함수 내의 변수 및 함수 선언을 각 유효 범위의 최상단으로 끌어 올려주는JS의 독특한 특징을 일컫는다. 함수, 변수 호이스팅에 대해서 설명해볼 생각인데우선 이번 포스팅에선 함수 호이스팅을 설명하겠다.예시를 보면 더 이해가 쉽다.함수 호이스팅 예시 코드sayHello();function sayHello() { console.log("안녕하세요!");}이러한 코드가 가능한 것은 함수 선언문이 호이스팅 시(컴파일 시점) 함수 전체가 메모리에 등록되기 때문이다.함수 표현식에서는 어떨까?sayHello(); // ❌ 오류 발생const sayHello = function() { console.lo..
도입부변수와 함수가 어떤 공간(Scope) 에서 선언되고 활용되는지를 이해하지 못하면, 의도치 않은 버그나 예측 불가능한 동작이 발생하기 쉽기 때문에 오늘은 스코프와 클로저의 기본 개념과 예시를 저 또한 자세히 알지 못해서 공부할겸 정리해보았다.스코프란? 🔍변수가 유효하게 접근할 수 있는 범위(영역) 를 말한다. 자바스크립트에서는 크게 아래 세 가지가 있다고 하는데글로벌 스코프모든 범위(함수, 블록 등) 바깥쪽의 최상위 영역var globalVar = 10; function foo() { console.log(globalVar); // 어디서든 접근 가능 }여기서 착각할 수 있는게 static과 같은 느낌이지만 엄연히 다르다고 한다.C++이나 Java처럼 미리 데이터 부분에 할당되고 이러한 방식..