분류 전체보기
-
Java : 각 자료형 간의 변환 정리Java 2025. 1. 20. 00:23
설명 위주보다는 바로 적용할 수 있도록 기록해두는 용도에 가까운 문서입니다. Ctrl + F키 또는 Command+F키를 통해 원하는 메서드를 찾아가시는 걸 추천합니다. 1.문자열(String) 관련 변환 숫자 -> 문자열 : String.valueOf( 숫자 ) int i, long l, float f, double d// 숫자 -> 문자열int num = 123;String strNum = String.valueOf(num); // "123" 문자열 -> 숫자 : Integer.parseInt( 문자열 )// 문자열 -> 숫자String str = "456";int intNum = Integer.parseInt(str); // 456// 그외 long, float, double 도 존재double ..
-
비트 연산자와 이용카테고리 없음 2025. 1. 14. 19:19
비트연산자들을 알아보자. (+ 자바에서의 특별한 활용) (https://youtu.be/V_taqJlZeeE?si=WuepJN3SVFavgdsm) 을 보고 정리한 글입니다.비트 연산자 정리int x = 5; // 0 0 1 0 1 (4 + 1)int y = 19; // 1 0 0 1 1 (16 + 2 + 1) 비트AND : & )양쪽 이진수 자리가 비교하여 모두 1 이여야 1 반환int xAndY = 5 & 19; // 0 0 0 0 1 (1) 비트OR : | )양쪽 이진수 자리가 비교하여 하나라도 1 이여야 1 반환int xOrY = 5 | 9; // 1 0 1 1 1 (16 + 4 + 2 + 1) 비트XOR : ^ )양쪽 이진수 자리가 비교하여 다르면 1, 같으면 0으로 반환int xXorY = 5..
-
Stream API의 map과 flatMapJava 2025. 1. 13. 09:03
Stream API의 map과 flatMap을 각각 설명한 후, 활용 사례에 대한 예시 코드를 첨부합니다. 그 후 map과 flatMap의 차이점을 표로 정리한 문서입니다. map역할 : 입력 스트림의 각 요소를 다른 객체로 매핑한다.입출력 : 하나의 입력 요소당 하나의 출력 요소가 있다.사용하는 곳 : 단순 변환 작업에 사용된다.map의 시각화 : https://youtu.be/pYev_wpi0QM?si=xFDDWV_X_PXkHuLE 예시1 : names 리스트의 요소들의 문자열 길이 계산더보기List names = Arrays.asList("Winter", "Summer", "Spring");// 길이를 따로 받을 list 선언List nameLengths = names.stream() // 리스트..
-
객체 지향 설계 원칙 SOILD, SRP와 OCPJava 2025. 1. 13. 09:02
SOLID 5대 원칙에 대해 간단한 표로 정리하고, 그중 SRP와 OCP를 구체화하여 작성했습니다. 또한 SRP와 OCP를 위배한 코드와 부합한 코드 예시를 기록한 문서입니다. SOLID 5대 원칙SRP(Single Responsibility Principle) OCP(Open-Closed Principle )LSP(Liskov Substitution Principle )ISP(Interface Segregation Principle )DIP(Dependency Inversion Principle )단일 책임 원칙개방-폐쇄 원칙리스코프 치환 원칙인터페이스 분리 원칙의존 역전 원칙클래스는 하나의 책임만 가져야 한다. or 클래스를 변경해야 하는 이유가 하나 뿐이어야 합니다.클래스는 확장에는 열려있고 수정에..
-
Git & GitHub 관련 명령어 모음Git&GitHub 2025. 1. 11. 00:01
git과 github관련 명령어를 짧은 설명과 함께 기록해둔 문서입니다. Ctrl + F키 또는 Command+F키를 통해 원하는 명령어를 찾아가시는 걸 추천합니다. Git로컬에서 지정한 특정 프로젝트의 버전 관리를 해주는 프로그램GitHubGit과 같은 것(X)Git으로 관리하던 레포지토리를 저장할 수 있는 외부 컴퓨터(원격 저장소) git init: 로컬에 레포지토리(.git)를 만드는 명령어레포지토리가 존재하지 않으면 버전 관리를 할 수 없다.git init 한다. = 로컬에서 Git 저장소를 초기화 = 버전 관리를 시작할 수 있는 환경이 된다.git addgit add 파일이름 // 특정 파일만 staging area에 업로드git add . //모든 파일을 staging area에 업로드: 커밋..
-
git fetch와 git pull의 차이점Git&GitHub 2025. 1. 10. 23:59
git에서 원격 레포지토리를 로컬 레포지토리로 가져오는 명령어인 fetch와 pull에 대해서 간단히 설명하고, 어떤 상황에서 git fetch, git pull 을 선택해야할지 기록해둔 문서입니다. git pullgit fetch + git merge를 동시에 실행한다. 그렇다면 git fetch는 뭘까요?git fetch 원격 레포지토리의 변경 내용을 가져오기만 한다.merge 작업은 하지 않고, 가져온 변경 내용은 *로컬 레포지토리의 "remote-tracking 브랜치"에 저장한다. (.git/refs/remotes/origin/[가져온브랜치이름] 로컬 디렉토리에 저장된다.)git fetch 이후에는 git diff [브랜치명](로컬레포지토리) origin/[브랜치명](원격레포지토리)를 통해 비교..
-
git rebase와 git merge의 차이점Git&GitHub 2025. 1. 10. 23:21
git에서 두 개의 브랜치를 합치는 명령어 rebase, merge에 대해서 설명하고, 차이점에 대해 정리해둔 문서입니다.차이점 (1) 병합의 방식 (2) 사용하는 상황(1) 병합의 방식rebase :히스토리가 직선형으로 정리되며, 브랜치 간의 작업 병합 흔적이 사라집니다. 이 과정에서 새 커밋 해시를 생성하므로, 히스토리가 변경됩니다. D -- E(experiment) /A -- B -- C(main)$git chekcout experiment$git rebase main A -- B -- C (main) -- D' -- E' (experiment)=> B 브랜치를 베이스로 새로운 가지를 만들었던 사실이 사라지고, main 브랜치 커밋 위로 experiment..
-
BufferedReader, BufferedWriter 기록Java 2025. 1. 10. 22:13
작성 계기 : 시간복잡도, 메모리 효율성을 따지는 코드를 작성했다.입력이 커지면 기본적인 Scanner나 System.out 방식은 병목이 되므로, BufferedReader와 BufferedWriter를 활용해 입출력 속도를 최적화해야 합니다. BufferedReaderimport 모듈import java.io.IOException;import java.io.InputStreamReader;import java.io.BufferedReader; 사용법public static void main(String[] args) throws IOException { //예외 처리 BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));다른..