728x90
반응형

코틀린 맛보기로 인프런 무료 강의를 듣고 내용을 적어본다.

강의 : 맛보자! 코틀린과 스프링으로 API 호출하기

 


[ 변수 알아보기 ]

형태

var 변수명:  타입

 

1. var / val

- var 읽기, 쓰기 가능

- val 읽기만 가능 

 

2. Int / Int? (null 허용)

- kotlin의 int는 null 허용 X

- null 허용하려면 타입에 ? 붙여서 선언

ex) 
var j : Int? = 10
j = null

println(j)

>> 실행 결과는 null이 나온다.

3. String / String? (null 허용)

- Int와 동일하게 null 허용하려면 ? 붙이기

 

4. 타입 추론

- 변수에 들어오는 값을 보고 타입을 알아서 지정


 

깃허브

https://github.com/jangmimi/kotlin_study

 

GitHub - jangmimi/kotlin_study

Contribute to jangmimi/kotlin_study development by creating an account on GitHub.

github.com

 

728x90
반응형
728x90
반응형

팀 프로젝트 결과물을 보완하고 있는 중인데

내 레파지토리로 옮기는 작업을 드디어 실행!

 

생각보다 어렵지 않았던 fork 작업!

 

 

1. 내 깃허브 레파지토리로 옮기고 싶은 프로젝트에서

Fork > Create a new fork

2. Repository name 세팅 / main branch only 여부 선택

레파지토리 이름은 원하는 대로 수정해도 된다.

main branch only 여부 선택부분에서 나는 체크된 상태로 Fork했었고

결과적으로 main만 가져와졌었기 때문에

기존 브랜치들을 가져오기 위한 fetch 작업을 추가적으로 했다.

체크 해제 시 아마도(?) 기존 브랜치들을 그대로 가져오지 않을까 생각한다.

 

 

 

 

 

참고 링크

https://salix97.tistory.com/223

 

[Git] 깃 - 프로젝트 fork 해서 작업하는 방법

1. 프로젝트 Fork 하기 우선 작업할 프로젝트의 레포지토리를 Fork 하여 내 레포지토리로 가져온다. 레포지토리 오른쪽 상단에 Fork 버튼이 있다. android/architecture-samples 를 Fork 하니 내 레포지토리에

salix97.tistory.com

 

728x90
반응형
728x90
반응형

MySQL과 Nodejs 연동과정에서 에러가 발생했다.

원인은 클라이언트 인증부분을 제대로 인식하지 못해서? 인 것 같다.

 

 

 

에러 내용 :

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client...

cmd) 에러 내용

 

js 파일 내용

 

해결 : 

ALTER USER '[MYSQL 아이디]'@'[MYSQL 주소]' IDENTIFIED WITH mysql_native_password BY '[MYSQL 비밀번호]';

 

실제 내 컴퓨터 기준으로 작성한 코드 :

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456789';

 

cmd에서 mysql 진입 후 작성해도 되고, mysql에서 직접 작성해도 된다.

(나는 mysql에서 직접 작성 후 실행했다.)

 

cmd) node.js 실행 결과

728x90
반응형
728x90
반응형

코딩테스트를 풀다 보면, 처음에 길게 작성했던 코드를 다시 봤을 때
정말 엄청나게 간결한 코드로 수정이 가능한 경우가 많았다.
오늘 이같은 상황을 또 한 번 마주하게 되어 기록을 남겨본다.
 
 
첫 풀이 코드

class Solution {
    public int[] solution(int[] num_list, int n) {
        int[] answer = new int[(num_list.length - n) + 1];
        
        for(int i=0,j=n-1; i<answer.length; i++, j++) {
            answer[i] = num_list[j];
        }
        return answer;
    }
}

 
stream 사용 수정 코드

import java.util.Arrays;

class Solution {
    public int[] solution(int[] num_list, int n) {
        return Arrays.stream(num_list, n - 1, num_list.length).toArray();
    }
}

 
배열 선언과 for문을 사용했던 코드에서 stream을 사용하니
return 한 줄로 간결하게 작성이 가능하다.
 
마법같은 코드 간소화를 통해 stream 공부도 꾸준히 해야함을 느꼈다.
기존에 1회 정독했었던 자바의 정석, 이것이 자바다 책 stream부분을 다시 읽고
유튜브나 인프런 사이트에서 자바 stream 강의를 다시 한 번 공부해야겠다.

728x90
반응형
728x90
반응형

StringBuilder & StringJoiner

둘 다 문자열을 효율적으로 처리하고 연결하는 데 사용되는 클래스이다.

각각의 목적과 사용법에 약간의 차이가 존재한다.

 


StringBuilder

StringBuilder는 단일 스레드 환경에서 문자열을 빠르게 수정하고 연결하기 위해 사용된다.
StringBuilder 객체는 가변이며, 내부적으로 버퍼를 사용하여 문자열을 구성한다.

이로 인해 문자열을 변경할 때마다 새로운 문자열 객체를 생성하지 않고도 문자열을 효율적으로 처리할 수 있다.
StringBuilder의 주요 메서드로는 append, insert, delete, replace 등이 있다.

class Solution {
    public String solution(String[] arr) {
        StringBuilder answer = new StringBuilder();
        for(String s : arr) {
            answer.append(s);
        }
        return answer.toString();
    }
}

 

 

StringJoiner
StringJoiner는 주로 문자열을 결합하기 위한 작업에 사용된다.
주로 문자열 컬렉션을 연결할 때 사용하며, 요소 간의 구분자를 지정할 수 있다.
예를 들어, 문자열 배열을 연결하고 각 요소를 쉼표로 구분하려면 StringJoiner를 사용할 수 있다.
StringJoiner의 주요 메서드로는 add, setEmptyValue, toString 등이 있으며, 요소를 추가하고 문자열로 변환하는 데 사용된다.

import java.util.StringJoiner;

class Solution {
    public String solution(String[] arr) {
        StringJoiner joiner = new StringJoiner("");
        for (String s : arr) {
            joiner.add(s);	// Java 8 이상에서 'String.join' 메서드 사용 가능
        }
        return joiner.toString();
    }
}

 

 

간단히 말하면, StringBuilder는 문자열을 구성하고 수정하는 데 사용되는 범용 클래스이며, 

StringJoiner는 문자열을 결합하고 요소 간에 구분자를 추가하는 데 특화된 클래스이다다.

따라서 사용 목적에 따라 두 클래스 중 하나를 선택하면 된다.

728x90
반응형

'Coding > Study' 카테고리의 다른 글

[IT 용어] API (Application Programming Interface)  (0) 2023.10.14
[JAVA] 람다식 Lambda  (0) 2023.10.05
[JSP] JSP 강의평가 웹 사이트 개발하기 완료  (0) 2023.10.02
[GitHub] 깃, 깃허브  (0) 2023.09.28
[Kotlin] 코틀린 맛보기  (0) 2023.09.22

+ Recent posts