Backend

Spring JPA의 @Table 어노테이션에 대해서 알아보자 - name을 어떻게 매핑하는가? 서론 Entity와 Table을 매핑하기 위해 사용하는 어노테이션은 @Table 어노테이션 입니다. 실제 @Table 어노테이션이 어떤 역할을 해주는것인지, 또한 각 속성값을 어떻게 동작시키게 되는지에 대해서 알아볼 예정입니다. 코드를 살펴보다가, 대체 @Table 의 name은 어떻게 매핑이 되는건지?에 대한 궁금증이 생겨서 그걸 중점적으로 이야기를 나눠보도록 하겠습니다. 어노테이션 코드 살펴보기 package jakarta.persistence; import java.lang.annotation.Target; import java.lang.annotation.Retention; import static j..
· Backend/Ruby
ruby의 ?(Question Mark / Boolean)의 의미 서론 루비를 사용하다 보면, 메서드에 ?가 붙여 있는 경우를 많이 보게 됩니다. ? 를 붙이는 이유와 어떤 변경점이 있는지, ruby의 구현되어 있는 메서드들을 간단히 살펴보는 시간을 가져볼 예정입니다. ? 를 붙이는것은 Question Mark라고 하지만, 실질적으로 메서드에 붙어 있다면 Boolean Methods라고 많이 합니다. method에 ? 가 내포하는 의미 일단 한마디로 정의한다면 boolean methods(논리 메서드) 라는 의미를 가지고 있습니다. 쉽게 생각하면 boolean이 return되는 메서드입니다. Java에서는 boolean을 의미할때 is_ prefix를 많이 사용하게 되는데요. 루비에선 ? 를 뒤에 붙임으..
· Backend/Ruby
ruby의 !(Exclamation mark / Bang)의 의미 서론 루비를 사용하다 보면, 메서드에 ! 가 붙여 있는 경우를 많이 보게 됩니다. ! 를 붙이는 이유와 어떤 변경점이 있는지, ruby의 구현되어 있는 메서드들을 간단히 살펴보는 시간을 가져볼 예정입니다. ! 를 붙이는것은 Exclamation Mark라고 하지만, 실질적으로 메서드에 붙어 있다면 Bang Methods라고 많이 합니다. method에 ! 가 내포하는 의미 일단 한마디로 정의한다면 dangerous methods(위험한 메서드) 라는 의미를 가지고 있습니다. 대체 뭐가 그렇게 위험하길래 ! 라는 mark까지 만들었고, 이걸 위험하다라고 경고를 준다는것일까요? 첫번째 이유는 해당 메서드를 사용한다면 원본 객체가 수정된다는 의..
· Backend/Ruby
ruby의 배열내의 카운트를 세는 법 서론 최근 어느 로직을 작성하는데, 배열내의 두개 이상의 값의 갯수를 세어야 하는 케이스가 있었다. 각각에 대한 갯수를 세면 쉽지만, 그렇게 되었을 경우 순회를 2번이상 돌아야 하기 때문에 데이터가 많다면 성능상 좋지 않다고 판단하여, 다른 방법이 있을지 찾아보았다. 기본 count 기본적으로 아래와 같이 코드가 있다고 해봅시다. arr = [1,1,1,2,3,3,4,4,4,4,4,4,5,5,5,5,5] arr에서 1의 갯수와 5의 갯수를 구하기 위해선 아래와 같이 코드를 작성하게 됩니다. arr.count(1) # 3 arr.count(5) # 5 이렇게 하면 두번의 계산이 있어야 하며, 더 추가되었을때 코드가 계속해서 추가되어 불편함이 있을수 있습니다. 기본 fo..
· Backend/Java
서론 현재 프로그래머스 백엔드 데브코스 5기 멘토를 진행하던중, 아래와 같이 멘티의 질문이 있었다. Java11까지만 해봤기 때문에 toList()에 대해서 잘 알지 못한다고 생각해 아래와 같이 정리를 해봤다. stream의 최종연산을 List로 반환하기. stream의 최종연산을 List로 반환하는 방법은 Java11에선 아래와 두개가 있었다. List collectorToList = numbers.stream() .filter(it -> it % 2 == 0) .collect(Collectors.toList()); List collectorToUnmodifiabledList = numbers.stream() .filter(it -> it % 2 == 0) .collect(Collectors.toUnm..
· Backend/Java
Java String의 isEmpty와 isBlank 서론 String 타입에서 해당 값이 빈 문자열인지 체크하는 메서드가 두개가 있다. isEmpty와 isBlank의 차이점을 알고, 각각 어느 상황에 써야 하는지 이해하는 시간을 가져보려고 한다. 일단 결론부터 말하자면 whiteSpace(공백)과 tap(탭)까지 포함해서 빈 문자열로 인정할것인가 이다. isEmpty 실제 자바 구현체를 보면 아래와 같다. /** * Returns {@code true} if, and only if, {@link #length()} is {@code 0}. * * @return {@code true} if {@link #length()} is {@code 0}, otherwise * {@code false} * * @..
1.9.0 언어 업데이트 release note What's new in Kotlin 1.9.0 | Kotlin Enum 클래스 entries 속성 values()의 함수를 entries라는 속성으로 대체하였습니다. values()의 단점은 호출할때마다 새로운 인스턴스를 매번 할당해야 하기 때문에 성능 문제로 이어질수 있다는 단점이 있습니다. 모든 호출마다 Mutable Array 복사본을 생성해 반환. 아울러 불변이 아니기 때문에, 수정이 가능한 부분이 있었습니다. enum class Direction { NORTH, SOUTH, EAST, WEST } fun main() { val directions = Direction.values() directions.forEach { println(it) } ..
서론 도커를 사용해 MySQL을 띄우는 작업을 해볼 예정입니다. docker-compse.yml을 이용해 협업자에게도 같은 환경을 제공해줄수 있다. 도커를 사용하는 이유는 팀워크에서의 이점이 있기 때문이다. 프로그램은 버전에 따라 많은 차이점을 가질수가 있다. 다른 버전을 쓰면 다른 협업자에겐 오류가 나는 경우도 있다 보니, 그런 부분을 맞추기 위해 docker를 사용해 컨벤션을 지켜본다. docker-compose 여러 개의 컨테이너로부터 이루어진 서비스를 구축, 실행하는 순서를 자동으로 하여, 관리를 간단히하는 기능이다. compose 파일을 준비하여 커맨드를 1회 실행하는 것으로, 그 파일로부터 설정을 읽어들여 모든 컨테이너 서비스를 실행시키는 것이 가능하다. MySQL을 위한 docker-comp..
IntelliJ IDE에서 Spring Initializr를 이용해 프로젝트를 생성해보자. 서론 이 글은 Intelli J를 통해 Spring 프로젝트를 생성해보는 글입니다. Spring 프로젝트를 만드는 방법은 여러가지 있지만, 간단히 만들어 볼 예정입니다. 단계 IntelliJ IDE를 설치를 진행합니다. 설치는 IntelliJ IDE를 실행합니다. 위 사진 페이지에서 New Project를 클릭합니다. 그리고 왼쪽 Generators에서 Spring Initializr를 클릭합니다. 위 사진의 각 값들을 채워넣습니다. Name: 프로젝트 이름 Location: 로컬 내에 저장할 경로 Language: 사용할 언어 Type: Build 도구 선택 Group: 패키지 그룹 Artififact: 프로젝트..
· Backend/Ruby
Numeric의 zero? & positive? & negative? Numeric 루비의 숫자 타입으로 숫자인 경우에 Numeric Class가 됩니다. to_i로 integer로 변경하면 Numeric 메서드를 사용할수 있습니다. cf) nil을 to_i로 하면 어떻게 되는가? nil.to_i // 0 혹시라도 zero? & positive? & negative? 메서드를 사용할때, null safe를 해야할 경우 nil.to_i를 하는것도 방법임. 그러나 zero?인 경우에 true가 나오기 때문에 nil이 0이라는 조건 하에 사용해야함. zero? APIdock 메서드명에서 보이다 싶이, 해당 숫자가 0인지를 체크하는 메서드 입니다. 구현 코드 static VALUE num_zero_p(VALUE..
Seyun(Marco)
'Backend' 카테고리의 글 목록 (4 Page)