본문 바로가기

두두의 IT

(167)
static / final / 상수 static 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드 인스턴스에 속한 멤버가 아니라 클래스에 속한 멤버 상수 (Constant) 변하지 않거나 일정한 값을 가진 수나 양 프로그램이 실행과 동시에 선언하여 실행되는 동안은 변하지 않는 용도로 사용 초기값이 저장되면 최종적인 값이 되어서 프로그램 실행 도중에 수정 불가. 프로그램에서 사용하는 공통코드나, 자주사용하는 문자 또는 숫자는 필드를 따로 선언합니다. 하드코딩 방지 각각 자주사용하는 문구나 숫자를 한곳에서 볼 수 있어서 유지보수에도 유용 예약어 final로 사용 변수 선언과 동시에 초기화를 해도 되지만 선언만 해놓고 밑에서 값을 지정해 줄 수 있음 static final 상수 객체마다 저장되지 않고, 클래스에만 포함..
Builder와 Getter/Setter 1. 점층적 생성자 패턴 : 생성자로 필드를 세팅, ex) new UserInfo(userId, password); 2. 자바빈 패턴 : Setter 메서드로 필드를 세팅, ex) userInfo.set(userId); 3. 빌더 패턴 : @Builder Builder Class 객체 생성에서 주입하는 것에 대한 방식 코드에서 파라미터에 대한 정확성과 오류를 찾기 쉽게하는 어노테이션 @Builder를 사용하는 이유 코드의 가독성이 높아진다. 더욱 유연한 코드 작성에 용이하다. getter/setter를 무작정 생성하는 경우, 해당 클래스의 인스턴스 값들이 언제 어디서 변경되는지 코드상으로 명확하게 구분할 수 없어 차후 기능 변경 시 불편하다. 유동적으로 필요한 데이터만 필드에 설정할 수 있음 객체를 생성..
int, Integer 차이 + 변수(variable) : 값을 저장할 수 있는 메모리 상의 공간 + 자료형 data의 type에 따라 값이 저장될 공간의 크기와 저장 형식을 정의한 것 변수의 타입 = data type = 자료형 기본형(primitive type) 산술 연산 가능 null 로 초기화 불가능 0으로 초기화 가능 기본형에는 다음과 같은 종류가 있습니다. Wrapper Class 자료형 데이터 메모리 크기 표현 가능 범위 Boolean boolean 참/거짓 1 byte true, false Character char 문자 2 byte 모든 유니코드 문자 Byte byte 정수 1 byte -128~127 Short short 정수 2 byte -32768~32767 Integer int 정수 4 byte -214748..
DAO, DTO, VO 차이 DAO (Data Access Object) DataBase의 data에 접근하기 위한 객체로, 데이터 삽입, 삭제, 조회 등 조작할 수 있는 기능을 수행함 DataBase 접근 로직과 비지니스 로직을 분리하기 위해 사용함 DB와 연결할 Connection 까지 설정되어 있는 경우가 많음 현재 많이 쓰이는 Mybatis 등을 사용할 경우 커넥션풀까지 제공되고 있기 때문에 DAO를 별도로 만드는 경우는 드뭄 DTO (Data Transfer Object) 계층 간(Controller, View, Business, Persistent Layer, DataBase) 데이터 교환을 하기 위해 사용하는 객체(Java Beans) 로직을 가지지 않는 순수한 데이터 객체 (getter & setter 메소드만 가진 ..
NodeJS Javascript는 브라우저에 내장되어 있다. NodeJS가 하는 일 - JS를 브라우저 밖으로 가지고 나와서 유저가 사용할 수 있게 함. 브라우저 밖에서 유저의 컴퓨터에서 돌아가게끔.. 브라우저 밖의 Javascript. Javascript를 쓰기 위해 브라우저를 사용하지 않아도 된다. ex) 로컬 PC에서 브라우저와 동일한 명령어를 다룰 수 있음 - Javascript를 이용해서 파일 시스템을 다룰 수 있다. ex) 서버 만들기, Web Scrapper 만들기, 웹페이지에 접속해서 정보들 수집하기, 모바일 앱 만들기, electron 어플 만들기, Next JS Typescript 프레임워크 Node.js 백엔드를 만들기 위한 프레임워크 NodeJS에는 규칙이 없다. 자유로워서 좋지만 스스로 구조를..
JUnit5 @BeforeAll(), @AfterAll()을 쓸 때는 static이 필요함 JUnit4부터는 public을 생략해도 됨
[DB] 정규화 https://spurious-heath-8ab.notion.site/1b287e97b7054d1697bab2491f241d70 정규화 이상현상(Anomaly) spurious-heath-8ab.notion.site 데이터 이상현상(Anomaly)란 무엇이며 어떤 것들이 있나요? 데이터의 중복으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상 갱신이상, 삭제이상, 삽입이상 정규화의 개념과 목적에 대해서 설명해 보세요 이상현상을 발생시키는 속성간의 종속성, 중복성을 제거하고 무결성을 보장하기 위해 릴렝션을 분해하는 과정 데이터의 중복 최소화 이상현상 발생 방지 : 데이터 구조의 안정성 유지 종속성 제거 2차 정규화에 대해서 설명해 보세요 부분함수 종속성 제거 - 1차 정규화를 만족하고 Relation의..
조회 빈이 2개 이상일 때 조회 대상 빈이 2개 이상일 때 해결 방법 1. @Autowired 필드명 매칭 먼저 타입 매칭을 시도하고 그 결과에 여러 빈이 있을 때 추가로 동작함 타입 매칭의 결과가 2개 이상일 때 필드명으로 빈 이름 매칭 2. @Qualifier -> @Qualifier끼리 매칭 -> 빈 이름 매칭 추가 구분자를 붙여주는 방법 주입시 추가적인 방법을 제공하는 것이지 빈 이름을 변경하는 것은 아니다 생성자/수정자에 @Qualifier 넣어주기 Qualifier는 Qualifier를 찾는 용도로만 사용하는게 명확하고 좋다. 3. @Primary 사용 @Autowired 시에 여러 번 매칭되면 @Primary가 우선권을 갖는다. 코드에서 자주 사용하는 메인 데이터베이스의 커넥션을 획득하는 스프링 빈이 있고, 코드에서 ..

LIST