전체 글

모르는 내용 및 아는 내용 모두 꼼꼼히 복습하여 익숙해지는 그 날까지 꾸준히 공부하겠습니다.
JAVA

[Java] Java Switch와 if/else 성능 비교 - jump table, lookup table

Enum, int 형을 기준으로 조건문을 작성해야 하는 일이 있었습니다.Java 버전이 업데이트되면서 switch 문이 조금씩 변경되는 것을 확인하고if/else 문과 switch 문의 성능적으로 어떤 차이가 있는지 궁금했습니다.또한 어떤 차이가 있고 어느 상황에서 switch문을 (if-else문) 사용하면 좋은지 정리해보고자 합니다.Switch vs if/elseif-else 문은 조건을 위에서부터 순차적으로 확인합니다.각 조건을 순서대로 검사하기 때문에 조건이 많아지거나 복잡해질수록 성능 저하가 발생할 수 있습니다.switch 문은 조건이 int, char, enum, String 같은 특정 타입일 때 내부적으로 효율적인 분기 처리를 합니다.jump table, lookup table을 사용하여 분..

Spring Framework/QueryDSL

[Querydsl] QueryDSL @QueryProjection 프로젝션 활용법 : DTO, Bean, Field, Constructor 사용법

Querydsl을 통해 쿼리문을 작성하면서 프로젝션 하는 방법에 대해 정리하고자 합니다.그 중 Type Safe 체크와 immutable 객체 선언이 가능한 생성자 + @QueryProjection을 사용하고 있습니다.Projection이란데이터베이스에서 프로젝션은 주어진 릴레이션에 대해 각 레코드에서 원하는 애트리뷰트 집합으로만 이루어진 새로운 릴레이션을 만드는 단일 연산자입니다.Querydsl에서 Projection 다루기프로젝션 대상이 1개List result = queryFactory .select(member.username) .from(member) .fetch();프로젝션 대상이 하나인 경우 타입을 명확하게 지정할 수 있습니다.프로젝션 대상이 2개 이상이..

Python/Python

[Python] 파이썬 all, any 함수 사용법

all파이썬의 all(x) 내장 함수는 반복 가능한 데이터(iterable) x를 입력 값으로 받으며 이 x의 요소가 모두 참이면 True, 거짓이 하나라도 있으면 False를 리턴합니다.print(all([1,2,3]))# Trueprint(all([0,1,2,3]))# False이를 응용해서 리스트에 있는 값이 모두 참인지 확인할 수 있다.### 5*5 배열에서 빙고 여부 확인하기# 세로에 있는 값이 모두 0인지for i in range(5): if all(arr[j][i] == 0 for j in range(5)): tmp += 1# (0, 0) -> (4, 4) 대각선이 모두 0인지if (all(arr[i][i] == 0 for i in range(5))): tmp += 1all() 함수..

JAVA

[Java] 자바 인코딩, 디코딩, base64 인코딩, 디코딩 처리하기

Encoding & Decoding 이해하기Encoding이란데이터를 다른 형식으로 변환하는 과정을 의미합니다.입력한 문자나 기호들을 컴퓨터가 읽고 처리할 수 있는 형태로 변환합니다.인코딩의 목적은 데이터를 효율적으로 전송하거나 저장하기 위함입니다.Decoding이란De 단어는 “반대”라는 의미를 가지고 있다.즉, 인코딩된 데이터를 원래의 형식으로 다시 변환하는 과정을 의미합니다.Encoding & Decoding 예시문자 인코딩텍스트를 컴퓨터가 이해할 수 있는 2진 데이터로 변환UTF-8, ASCII …URL 인코딩URL에서 사용될 수 없는 특수 문자를 %로 시작하는 숫자 코드로 인코딩합니다.ex) 공백은 %20으로 인코딩함UTF-8유니코드를 위한 가변 길이 문자 인코딩 방식전세계 모든 문자를 동시에 ..

JAVA

[JAVA] static, final, staic final 개념 이해하기 - 전역 변수, 상수

staticstatic은 ‘정적인’, ‘고정된’이라는 의미로 전역 공간에서 사용할 수 있습니다.주로, 객체 생성 없이 사용할 수 있는 필드와 메서드를 생성해 사용한다. static을 통해 선언한 정적 메서드는 객체 참조 없이(생성 없이) 바로 사용할 수 있어, 인스턴스 필드나 메서드, this 키워드를 사용할 수 없습니다. 왜냐하면, 객체 안에 선언되어 있는 부분은 객체가 생성되기 전까지 메모리에 올라오지 않기 때문에 참조할 수 없다.!! example codepublic class TestClass{ static int field1 = 1234; int field2; void method(){} static void method2(){} static int testMethod(int x, in..

트러블슈팅

[Mac] iTerms2 개발 환경 세팅하기

1. 사용자 이름 줄이기vi ~/.zshrcprompt_context() { if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then prompt_segment black default "%(!.%{%F{yellow}%}.)$USER" fi }sourc ~/.zshrc 2. iTerm2 Highlightbrew install zsh-syntax-highlightingvi ~/.zshrc### .zshrc 추가source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zshplugins=( zsh-syntax-highlighting) 3. iTerm2 색상 변경..

JAVA

[JAVA] Java 일급 컬렉션 사용법 및 이해하기

일급 컬렉션이란Collection을 Wrapping 하면서, 그 외 다른 멤버 변수가 없는 상태를 의미합니다.일급 콜렉션 적용다른 멤버 변수가 없어야 한다.각 컬렉션은 그 자체로 포장되어 있으므로, 컬렉션과 관련된 동작은 해당 클래스에서만 이루어진다.기존 코드Map map = new HashMap();map.put("1", "A");map.put("2", "B");map.put("3", "C"); 일급 컬렉션 코드public class GameRanking { private Map ranks; public GameRanking(Map ranks) { this.ranks = ranks; }}비즈니스에 종속적인 자료구조이다.클래스명을 통해 Game Ranking에 관한 자료구조임..

Spring Framework/Spring boot

[Springboot] 스프링부트 HttpInterface 사용법 및 이해하기 - @HttpExchange, @GetExchange

공식문서에 작성된 글을 바탕으로 공부하고 정리해 보았습니다.영어로 된 공식문서에 친근해지고자 HttpInterface를 설명하는 글 중 중요 문장을 작성하면 강조하였습니다.HTTP InterfaceThe Spring Framework lets you define an HTTP service as a Java interface with @HttpExchange methods.you can pass such an interface to HttpServiceProxyFactory to create a proxy which performs requests through an HTTP Client such as RestClient or WebClient.(해당 인터페이스를 HttpServiceProxyFactor..

kylo
오늘도 열심히 - BE