본문 바로가기

전체 글

(295)
[Java] StringBuilder VS String String 은 Immutable 해서 String 에 값을 더하거나 하면 새 주소값을 할당받게된다.따라서 String 이 계속 변하게 되면 (반복문 안에 값을 계속 더하거나) StringBuilder 를 사용하는것이 낫다. 자바스크립트 하다가 자바 하니까 이런 타입같은것을 꼼꼼히 지정해야하니 당황스럽긴한데, 아무래도 브라우저언어를 하다가 컴파일단계에서 이렇게 직접 타입을 지정해주니까 상대적으로 정말 완성된언어라는 생각이 든다. 자바 관련 강의는 정말 많이 들었지만 실무에서 적극적으로 사용하지 않다 보니까 이렇게 꾸준히 쉬운 문제라도 계속 풀어보면서 내 것으로 만들어야겠다. 이미 자바스크립트로 다 풀어본 문제이지만최대한 간단한 문제를 해결할때에도 그 의미가 무엇인지, 정말 간단한 메서드를 사용하지 않으려..
[Java] 두 수의 나눗셈 class Solution { public int solution(int num1, int num2) { return (int)(((double) num1 / num2) * 1000); }} 자바는 자바스크립트랑 다르게 메모리를 최적화하도록 타입지정을 해야해서, 얻고자하는 결과값에따라 타입을 지정해주어야한다. 머릿속에 자바, 자바스크립트, 코틀린, Python, MySQL 문법이 자꾸 섞여있어서 알고리즘 문제를 풀 때 자꾸 헷갈린다.각자 사용하는 목적에 따라서 다르기때문에 자바를 제대로 익혀야겠다
[Kafka] Kafka VS WebSocket 단일 통신 비교 실시간 데이터가 오가는 프로젝트들을 하면서 "메시지 브로커"라는 개념을 정확히 이해해야 할 필요성이 생겼다.Kafka 강의는 여기에서 시작됐다.강의 자체는 매우 기본적인 Kafka 개념을 중심으로 구성되어 있는데, 그게 지금 내 상황에는 오히려 필요한 부분이었다.Producer, Consumer가 무엇인지, Topic이 어떤 역할을 하는지, Partition이 왜 필요한지.이런 구조적인 기초가 확실히 잡히니까 실무에서 의사결정할 때 어떤 기술을 선택해야 하는지 판단 기준이 생겼다. 강의에서 얻은 가장 큰 수확은 “Kafka를 단순 메시지 큐가 아니라, 구조적인 설계 요소로 바라보게 된 점”이었다.특히 아래 부분이 명확해졌다:Topic = 데이터의 분류 단위Partition = 병렬 처리와 확장성을 결정하..
[Docker] JSCODE 박재성 Docker 강의 후기 및 Docker 명령어 정리 프론트엔드, 백엔드, 인프라, 배포까지 손대야 하는 풀스택 환경에 놓여 있다 보니, 자연스럽게 Docker를 건드릴 수밖에 없는 상황이었다. 하지만 기존에는 “컨테이너 대충 쓰는 기술” 정도로만 알고 있었고, 이미지와 컨테이너의 차이를 제대로 이해하지 못한 상태에서 실무를 진행하다 보니, 문제를 만나면 해결 포인트를 못 잡고 헤매는 일이 잦았다.이번 강의를 들으면서 가장 먼저 크게 바뀐 건 개념의 정리였다.컨테이너/이미지/호스트/포트—이 네 가지를 정확하게 이해했다고 말만 하는 게 아니라, ‘왜 이 개념이 분리되어야 하는지’까지 알게 되니 실제로 작업할 때 모든 판단이 달라졌다.특히:이미지 = 실행 환경과 애플리케이션의 ‘불변 스냅샷’컨테이너 = 그 이미지가 실제로 실행되는 ‘개별 인스턴스 (미니 컴퓨터..
[Kotlin] 명언 API 불러오기 및 Android 인증서 문제 API Failure: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. 문제점 kotlin 강의를 수강하면서 명언리스트 페이지를 제작했다. 원래 기존에 사용하던 방식은 List 를 만들어서 그냥 내가 원하는 명언을 add 하는 방식으로 제작했는데, 명언 검색하기도 귀찮고 그냥 랜덤으로 명언을 가져다주는 api 를 활용하면 좋을 것 같았다.   // 기존의 로컬 명언 리스트 (예시) val sentenceList = mutableListOf() sentenceList.add("검정 화면에 대충 흰글씨 쓰면 명언같다.") 그래서 일단 명언을 랜덤으로 가져다주는 api 가 있나 검색해 본 결과, 아래와 같이 랜덤 한국어 명언 api가 있었다.https://github.com/gwongibeom/korean-advice-open-api GitH..
[Kotlin] 변수와 데이터 타입 변수의 선언 코틀린에서 변수의 선언은 val과 var를 사용한다. val(Immutable)변수를 선언할 때 지정한 값에서 더이상 변경하지 않아야 하는 경우 사용 var(mutable) 변수의 값을 바꿀 수 있어야 하는경우 사용  변수 선언 방법변수 선언 키워드val (변경 불가능한 변수), var (변경 가능한 변수)val, var변수 이름변수를 나타내는 이름, 소문자로 시작하고 camelCase를 따름variableName데이터 타입변수의 데이터 유형 (String, Int, Boolean 등). 생략 가능 (타입 추론 지원)String, Int값변수에 할당할 초기값"변수 선언 방법" val variableName: String = "변수 선언 방법"  변수의 출력println("print value..
TIL 24.12.13 input components props type 지정 기존에 input component를 제작할 때 타입을 다음과 같이 받아오고 있었다. 이렇게 하면 html 태그에 존재하는 props들을 타입으로 따로 지정하지 않아도 자연스럽게 받아올 수 있다interface InputProps extends HTMLAttributes { type?: "email" | "password" | "text" | "number"; placeholder?: string; disabled?: boolean; register?: any; width?: number | string | "full";} 근데 다음처럼 작성하니까 value 가 타입에 맞지 않는다면서 에러가 생김.  그래서 찾아보니까 다음과 같은 차이가 있었다.  1. HTMLAttributes적용 대상..
TIL 24.12.09 git stash 로 현재 작업 내역 임시 저장 및 브랜치 이동하기 git stash변경 사항을 커밋하기에는 아직 이른데, 현재 작업내역에 대해서는 임시저장하고싶고 브랜치 이동해서 다른 작업을 수행해야 할 때 사용한다.  사용 순서 (ex 헤더 브랜치와 푸터 브랜치를 동시에 작업한다고 할때, 헤더작업하다가 중간에 푸터로 이동하고 싶을수도 있다고 생각) 1. 헤더 브랜치로 이동git checkout feat/header 2. 헤더 내용 작업 3. 헤더 작업 stashgit stash push -m "header: 헤더 작업 중" 4. 푸터 브랜치로 이동git checkout feat/footer 5. 푸터 작업 stashgit stash push -m "footer: 푸터 작업 중"   특정 stash 복원 1. 현재 브랜치에서 저장 된 stash 목록 확인git stas..