나를 기록하다
article thumbnail
[Interview] JPA, 알고 쓰고 있을까?
CS/Interview 2024. 6. 18. 23:13

지금 프로젝트에 JPA를 사용하면서 문득 나는 JPA를 정말 알고 사용하고 있을까라는 의문이 들었다. 기한에 쫓겨가며 코드를 작성하는데 내가 처음에 생각했던 내 코드에 대해 완벽히 이해하고 설명할 수 있는 코드를 쓰자는 생각과 거리가 멀어진 느낌을 받았다. 그렇기 때문에 다시 초심을 찾고 조금 더디더라도 이해하고 누군가 나에게 코드에 대해 질문하면 설명할 수 있는 내가 되기 위해 면접 답변 형식으로 개념을 정리하고자 한다. 시작하겠다. JPA란 무엇인가?답변Java Persistence API의 약자로 자바 진영의 ORM 기술 표준입니다.관계형 데이터베이스는 어떻게 데이터를 저장할지에 초점이 맞춰진 기술이고, 객체지향 프로그래밍 언어는 메시지를 기반으로 기능과 속성을 한 곳에서 관리하는 데 초점이 맞춰진..

article thumbnail
고정 소수점(fixed point)과 부동 소수점(floating point)
CS 2024. 1. 25. 20:56

요즘 자바의 기초를 다시 공부하고 있다. 자바의 기초, 특히 변수에 대해서 공부하다보면 다양한 기본 자료형이 나오는데, 그 중에서 실수형을 다루는 float와 double에 나오는 개념인 고정 소수점과 부동 소수점에 대해 알아보고자 한다. 고정 소수점, 부동 소수점은 어떤 개념일까? 그에 앞서 실수형 자료형인 float와 double에 대해서 알아보자. 실수형 - float, double 실수형의 범위와 정밀도 실수형에는 대표적으로 4byte의 자료형 float와 8byte의 자료형 double이 존재한다. 이 둘의 범위와 정밀도를 비교하면 아래와 같다. 타입 저장 가능한 값의 범위 정밀도 크기 - byte(bit) float -3.4 x 10³⁸ ~ -1.4 x 10⁻⁴⁵, 1.4 x 10⁻⁴⁵ ~ 3..

article thumbnail
[Interview] Spring, DI, IoC, ORM, JPA, Hibernate
CS/Interview 2023. 9. 9. 10:00

Spring 객체를 관리할 수 있는 컨테이너를 제공하는 프레임워크 예시 공통적으로 사용하는 객체가 있다고 가정 A 클래스, B 클래스, C 클래스가 있을 때 D 클래스의 인스턴스인 d를 사용하려면 메모리에 d를 3개(A, B, C 각각 생성) 생성해야함. → 같은 기능을 하는 d가 메모리에 3개가 존재하므로 굉장히 비효율적 → 공통으로 사용하는 하나는 같이 쓸 수 있게 컨테이너를 제공하는 것이 Spring Core 과거에는 EJB가 존재했다. EJB는 상속, 구현 등 복잡했다. 이것에 대한 불만을 가지고 만든 것이 Spring Spring은 순수 Java로 구성되어 있고 객체를 관리하는 역할을 한다. 오픈소스란 소스를 오픈하는 것. 즉 모두가 기능을 추가할 수 있도록 개발한 소스를 오픈하는 것을 말한다...

article thumbnail
DAO, DTO, VO, ENTITY
CS 2023. 9. 3. 00:22

개인 프로젝트를 진행하다가 회원가입 기능을 구현하는데 MemberForm을 따로 분리하여 구현하는 것과 폼 없이 엔티티를 직접 등록과 수정 화면에서 사용하는 것의 차이에 대해 궁금해졌고, 알아보기로 했다. 우선 간단하게 정의하자면 아래와 같다. DAO: DB에 접근하는 역할을 하는 객체 DTO: 데이터를 전달하기 위한 객체 VO: 값 자체를 표현하는 객체 1. DAO (Data Access Object): 특징 DB에 접근하기 위한 객체 직접 DB에 접근하여 데이터 삽입, 삭제, 조회 가능(CRUD) DB에 접근하기 위한 로직과 비즈니스 로직을 분리하기 위해 사용 DB와 연결할 Connection까지 설정되어 있는 경우가 많다. Service와 DB를 연결하는 고리 역할을 한다. Repository pa..

article thumbnail
[CS] 슬라이싱
CS 2023. 4. 12. 15:09

슬라이싱은 파이썬에서 문자열, 리스트, 튜플 등 시퀀스 자료형의 일부분을 추출하는 방법입니다. 슬라이싱을 사용하면 시퀀스 자료형의 원하는 부분만 선택하여 새로운 시퀀스를 생성할 수 있습니다.슬라이싱은 다음과 같은 형태로 사용합니다:sequence[start:stop:step]start: 시작 인덱스로, 슬라이싱이 시작되는 위치입니다. 이 인덱스를 포함합니다. 생략하면 0으로 간주합니다.stop: 종료 인덱스로, 슬라이싱이 끝나는 위치의 바로 이전 인덱스입니다. 이 인덱스는 포함하지 않습니다. 생략하면 시퀀스의 마지막 인덱스로 간주합니다.step: 슬라이싱할 때 취할 간격입니다. 생략하면 1로 간주합니다.예를 들어, 문자열 "abcdefgh"에 대해 슬라이싱을 사용하면 다음과 같이 동작합니다:string ..

article thumbnail
[CS] 라이브러리(library)
CS 2023. 4. 6. 15:19

라이브러리(library) 라이브러리(library)는 프로그래밍에서 재사용 가능한 코드 조각이나 기능들을 모아놓은 모음집입니다. 라이브러리는 개발자들이 흔히 사용하는 기능들을 쉽게 활용할 수 있도록 미리 구현된 코드를 제공하므로, 개발자는 해당 기능을 처음부터 직접 구현할 필요 없이 라이브러리를 가져와 사용할 수 있습니다. 이로 인해 개발 시간을 절약하고, 코드의 안정성과 효율성을 높일 수 있습니다. 라이브러리는 다양한 프로그래밍 언어에서 사용되며, 특정 언어로 작성된 라이브러리는 해당 언어의 프로젝트에서 사용할 수 있습니다. 라이브러리의 형태 정적 라이브러리 정적 라이브러리는 프로그램이 컴파일되는 동안 프로그램에 포함되는 코드입니다. 이 경우, 라이브러리의 코드가 프로그램의 실행 파일에 직접 포함되므..

profile on loading

Loading...