보글보글 개발일지
반응형
[자바의 정석] 지네릭스
코딩기록/자바 2024. 1. 24. 17:00

지네릭스 JDK1.5에서 도입 지네릭스란? 지네릭스는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시에 타입체크를 해주는 기능. 객체 타입을 컴파일 시에 체크 -> 객체의 타입 안정성 높이고 형변환의 번거로움을 줄임 타입 안정성 높인다? 의도하지 않은 타입의 객체가 저장되는 것을 막고, 저장된 객체를 꺼내올 때 원래의 타입과 다른 타입으로 잘못 형변환 되어 발생할 수 있는 오류 줄임. EX) ArrayList와 같은 컬렉션 클래스는 다양한 종류 객체 담을 수 있지만 한 종류의 객체를 담는 경우 더 많다. 한 종류 객체인데도 꺼낼 때 마다 타입체크 하고 형변환 하는 것은 불편. 원하지 않는 종류의 객체 포함되는 것 막을 법 없음. 그래서!! 지네릭스를 쓴다. 지네릭스의 장점 1. 타입 안..

왜 싱글톤 패턴을 사용할까?
코딩기록/CS 2023. 11. 13. 01:44

면접 질문으로 받았는데... 제대로 대답하지 못했다. 싱글톤 패턴이란? 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나. 최초 생성 이후 호출된 생성자는 최초의 생성자가 생성한 객체 리턴. 싱글톤 패턴은 단 하나의 인스턴스를 생성해 사용하는 디자인 패턴 사용 이유? 1. 메모리 측면 싱글톤 패턴을 사용하게 된다면 한개의 인스턴스만을 고정 메모리 영역에 생성하고 추후 해당 객체를 접근할 때 메모리 낭비를 방지할 수 있다. -> 고정된 메모리 영역, 한번의 new로 인스턴스 사용 2. 속도 측면 생성된 인스턴스를 사용할 때는 이미 생성된 인스턴스를 활용하여 속도 측면에 이점이 있다. 객체 로딩 시간 감소 3. 데이터 공유 전역으로 사용하는 인스턴스이기 때문에 다른 여러 클래스에서 데이터를 공유하..

article thumbnail
[프로그래머스][SQL/MySQL] 없어진 기록 찾기
코딩기록/SQL 2023. 9. 18. 18:29

문제 https://school.programmers.co.kr/learn/courses/30/lessons/59042 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Left 혹은 RIGHT join은 기준 테이블, 즉 반드시 출력되는 테이블을 잡아 줌. RIGHT을 기준으로 잡으면 오른쪽에 위치한 테이블은 반드시 출력되고 없으면 NULL WHERE절에 IS NULL을 통해 널인지 아닌지 판단 코드 SELECT O.ANIMAL_ID AS ANIMAL_ID , O.NAME AS NAME FROM ANIMAL_INS I RIGHT JOIN ANIMAL_..

[프로그래머스][SQL/MySQL] 상품 별 오프라인 매출 구하기
코딩기록/SQL 2023. 9. 18. 18:04

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131533# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 join group by sum에 대한 기본 지식이 필요하다.. 코드 -- 코드를 입력하세요 select PRODUCT_CODE, sum(price*SALES_AMOUNT) as SALES from product p join offline_sale o on p.product_id = o.product_id group by product_code order by sales desc, ..

인증용 테스트글
코딩기록 2023. 9. 3. 00:14

코드트리 아이디: bbo1209

article thumbnail
[Java] Final 키워드
코딩기록/CS 2023. 5. 25. 12:39

Final의 정의 자료형에 값을 단 한번만 설정할수 있게 강제하는 키워드 즉, 값을 한번 설정하면 그 값을 다시 설정할 수 없다 public class Sample { public static void main(String[] args) { final int n = 123; // final 로 설정하면 값을 바꿀수 없다. n = 456; // 컴파일 에러 발생 } } 한 번만 할당 가능하다는 선언. 재할당하려고 하면, 컴파일 오류가 발생하여 바로 확인이 가능. final은 프로그램 수행 도중 그 값이 변경되면 안되는 상황에 사용한다. Final 변수 변수에 final을 붙이면 이 변수는 수정할 수 없다는 의미. 수정될 수 없기 때문에 초기화 필수. final 키워드가 붙은 변수는 초기화 후 변경 불가. ..

MyBatis vs JPA
코딩기록/스프링 2023. 5. 4. 09:18

MyBatis: SQL Mapper 직접 SQL 작성 복잡한 JOIN 구현시 많이 사용 JPA: ORM(Object Relation Mapping) - 객체와 테이블 간 연결 JPA는 스펙(기능정의) → 구햔체가 필요. Hibernate JOIN의 성능이 영향을 많이 미침 간단한 기능 위주로 사용(CRUD)

article thumbnail
[운영체제] 메모리의 연속 할당 방식
코딩기록/CS 2023. 4. 13. 10:46

연속할당 연속할당이란? 물리적 메모리의 한곳에 연속적으로 적재 고정 분할 방식 의미 물리적 메모리를 정해진 개수만큼의 영구적인 분할로 나누어두고 각 분할에 하나의 프로세스를 적재하는 방식 특징 동시에 메모리에 올릴 수 있는 프로그램의 수 고정. 하나의 분할 공간에는 하나의 프로세스만 들어갈 수 있으므로 다른 프로그램 들어갈 수 없다 → 메모리 낭비 문제점 외부 단편화: 프로그램 크기보다 분할의 크기가 작은 경우 해당 분할이 비어있는 경우에도 프로그램 적재 못함 내부 단편화: 프로그램 크기보다 분할의 크기가 큰 경우 해당 분할에 프로그램을 적재하고 남는 현상 가변 분할 방식 의미 메모리에 적재되는 프로그램의 크기에 따라 분할의 크기, 개수가 동적으로 변하는 방식 → 프로그램의 크기를 고려해서 메모리를 할당..

article thumbnail
[네트워크] DHCP(Dynamic Host Configuration Protocol)
코딩기록/CS 2023. 4. 5. 11:25

DHCP(Dynamic Host Configuration Protocol) DHCP는 Host IP 구성 관리를 단순화하는 IP 표준이다. 동적 호스트 구성 프로토콜 표준에서는 DHCP 서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 네트워크의 DHCP 사용 클라이언트에게 동적으로 할당하는 방법을 제공한다. 쉽게 말해서 DHCP 서버가 클라이언트의 IP주소, 서브넷 마스크, DNS 서버 IP주소, 임대 기간 등 다양한 네트워크 정보를 자동으로 할당해주는 프로토콜이다. OSI Layer 7계층 중 Application Layer에 속한다. “Plug and Play(PnP) protocol”이라고 불린다. 꽂기만 하면 사용할 수 있는 ‘즉시 시작’이라는 뜻이다. 연결 후 작동하는 프로토콜이다...

[프로그래머스][SQL/MySQL] 즐겨찾기가 가장 많은 식당 정보 출력하기
코딩기록/SQL 2023. 4. 2. 20:33

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131123 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 음식종류별로 즐겨찾기수가 가장 많은 식당을 먼저 찾아야하기 때문에 WHERE 절 안에 IN을 통해 즐겨찾기 수가 가장 많은 식당의 FOOD_TYPE을 찾아내면 된다. 코드 SELECT FOOD_TYPE,REST_ID,REST_NAME,FAVORITES FROM REST_INFO WHERE FOOD_TYPE IN ( SELECT FOOD_TYPE FROM REST_INFO GROUP B..

반응형