공부공부 20

Rust Cargo

Cargo 카고란 러스트의 빌드 시스템이자 패키지 매니저이다. 사용하고자 하는 패키지의 의존 라이브러리를 다운로드하고 빌드, 버전 관리해주는 역할을 한다. 대부분의 러스트를 사용하는 사람들이 카고를 사용하기 때문에 그대로 사용하면 된다. Cargo 설치 확인 rustup을 설치했다면 cargo도 같이 설치된다. $ cargo --version 실행 화면 Cargo 프로젝트 생성 $ cargo new hello_cargo --bin 실행 화면 Cargo 컴파일 및 실행 관련 명령어 cargo 빌드 $ cargo build cargo 실행파일 실행 $ ./target/debug/hello_cargo $ cargo run 실행 화면 빌드 + ./target/debug/hello_cargo cargo run c..

공부공부 2023.11.04

Rust 설치 및 Hello World 출력

Rust 설치 공홈에도 나와있지만 제일 선호되는 러스트 설치방법은 Rustup이라는 커맨드 도구를 이용하는 것 그 이외 방법도 있다고 나와있음. rustup rustup이란 러스트 버전 관리 및 관련 도구를 위한 커맨드 라인 도구 rustup 설치과정 $ curl https://sh.rustup.rs -sSf | sh 위의 명령어를 입력하면 아래와 같이 설치가 된다. 위의 화면에서 설치 옵션을 선택할 수 있는데 default로 설치를 진행했다. (1 입력) 위의 과정까지 마쳤다면 러스트 설치가 완료되었다. 옵션 터미널 재시작 없이 곧바로 러스트를 쓰고 싶다면 위의 명령어를 입력해서 시스템 패스에 곧장 추가하는 방법이 있다. $ source $HOME/.cargo/env 터미널 종료 후 재시작하면 다음 로..

공부공부 2023.11.04

공부공부-20230726(스터디, Go, 쿠버네티스)

회사에서 기술 공유 모임 = 스터디 에 참여하고 있다. 7월 25일의 주제는 대략적으로 Go에 대한 이야기가 많았는데 아무래도 go를 이용해서 실시간 서버 구축하는 일이 많아서 그런 것 같다. 일단 Go 언어에 대한 이야기로는 switch문 case에 무조건 break가 걸린다는 점, failthrough를 각 case마다 써야 break가 무시된다고 한다 전위 연산자가 없다는 점, 근데 후위 연산자는 또 있다는 점 규칙이 강하다는 점 (이거때문인지는 모르겠는데 아무튼 그래서 어떤 go프로젝트를 보아도 비슷하다고 하셨다) init 함수를 여러번 쓸 수 있다는 점(위에서부터 순차 실행) 러닝 커브가 낮은데 쓰는 회사가 꽤 돼서 주니어 개발자 중에서 적당히만 해도 회사가 뽑으려고 한다..? (기억이 잘 안난..

공부공부 2023.07.26

공부공부-230529

boiler-plate 테스트 데이터 생성 https://www.arhohuttunen.com/test-data-builders/ 빌더 패턴을 사용하는 방식이 있다. with 메소드로 setter와 비슷하게 값을 세팅하지만 객체를 반환하도록 해서 불변 객체를 유지하도록 한다. 커스텀 예외 관련해서 https://jjingho.tistory.com/121 표준 예외 사용 시 아래와 같은 장점이 있다고 한다. 다른 사람이 익히고 사용하기 쉬워진다. 읽기 쉬워진다. 메모리 사용량과 클래스 적재 시간이 줄어든다. 커스텀 예외를 사용하면 좀 더 이해하기 쉬운 코드가 되지 않을까하는 마음에 사용하였는데 잘 모르고 쓰는 것은 역시 독인 것 같다.. URL DB 저장 http://daplus.net/sql-url에-가..

공부공부 2023.05.29

공부공부-230528

벌써 28일이요..? 자바 문자열 공백 포함 출력 https://kkh0977.tistory.com/356 의외로 간단했다.. String nayoon = "nayoon"; System.out.printf("%10s.", nayoon); // ---- // nayoon. System.out.printf("%-10s.", nayoon); // ---- // nayoon . 문자열 제거 문자열 제거는 trim이나 strip(java 11 이후..)을 쓰면 모든 공백을 제거한다. https://hianna.tistory.com/526 근데 위 블로그를 보면 공백의 종류가 의외로 많다.. 스페이스, 탭.. 등등 그리고 trim은 특정 공백만 제거 가능한 반면 strip은 모든 공백을 제거하는 것이 가능하다. s..

공부공부 2023.05.28

공부공부-230521

Spring Event https://wildeveloperetrain.tistory.com/217 스프링 이벤트를 사용하는 이유는 '의존성 줄이기를 위함'이라고 합니다.. 팩토리 메소드 패턴 https://sun-22.tistory.com/84 장점 1. 객체 생성에 대한 명시적 선언이 가능하므로 코드를 보는 사람들의 이해도가 높아진다. 2. 호출할때마다 인스턴스를 새로 생성하지 않아도 된다. 싱글톤 패턴을 위해 사용된다. 3. 반환 타입의 하위 타입 객체를 반환할 수 있다. 4. 입력 매개변수의 개수에 따라 다른 클래스 객체를 반환할 수도 있다. (객체 생성 코드에 로직을 추가할 수도 있다는 것으로 이해..) 5. 정적 팩토리 메소드를 사용하는 시점에 반환할 클래스 객체가 존재하지 않아도 된다. 단점..

공부공부 2023.05.21

공부공부-230520

4번째 클코 정리 (이렇게 하지 않으면 죽어도 정리를 안한다.. 지독한 놈..) 클코에서 이야기한 좋은 개발자의 개발 방향은 1. 프로그래밍의 기본틀은 OOP 기반(class 기반) 2. 메소드 내부 구현은 FP 지향 3. 객체의 상태관리는 immutable object를 지향 그런데.. 우리가 한동안 열심히 OOP로만 개발하고 살아왔기 때문에 FP를 연습하는 것은 생각보다 쉽지 않은데.. FP를 제대로 연습하고 싶다면 극단적으로 FP를 지향하는 언어로 연습하는게 좋고.. 이러한 언어에는 리습이나 JVM 언어인 clojure와 같은 언어가 있다. 아무튼 직접 공부해보면서 FP를 연습하는게 좋다고 한다.. 변경 가능성이 있을 것은 인터페이스로 분리한다. 인터페이스로 분리 시 변경에 빠르게 대응할 수 있다...

공부공부 2023.05.20

공부공부-230516

IntStream range https://m.blog.naver.com/ding-dong/221386518751 range(1, 10) -> 1 ~ 9까지 rangeClosed(1, 10) -> 1 ~ 10까지 위의 블로그에서 이야기해주길 - IntStream을 잘쓰면 for 반복문과 같은 코드를 간결하게 바꿀 수 있다. - 하지만 항상 IntStream을 쓰는게 간결한 코드로 이어지는 것은 아니다. - 상황에 맞게 잘 써보자. 리스트 내 중복 요소 체크 https://doing7.tistory.com/145 Stream을 이용한 중복 체크 시, distinct()를 사용해서 중복을 없애고 count()로 개수를 체크해서 중복여부를 확인한다. List arr의 중복 요소 체크 시, arr.size() ..

공부공부 2023.05.16