2025/04 12

[Database] Ch06.JOIN - 문제 풀이

현재 SELF JOIN까지 풀었습니다. 틀린 답이 있을 수도 있습니다.tabase[Database] Ch05.SubGroup으로 데이터 분류 - 문제 풀이6.4 EQUIJOIN 예 - 예제 91. 직원(S_EMP) 테이블과 부서(S_DEPT)테이블을 JOIN하여, 사원의 이름과 부서, 부서명을 나타내시오.select e.name, e.dept_id, d.namefrom s_emp e, s_dept d where e.dept_id = d.id; 6.5 칼럼과 테이블의 ALIAS사용 - 예제 101. 서울 지역에 근무하는 사원에 대해 각 사원의 이름과 근무하는 부서명을 나타내시오. select distinct e.name, d.name from s_dept d, s_region r, s_emp ewhere..

Database 2025.04.30

[Database] Ch05.SubGroup으로 데이터 분류 - 문제 풀이

Intro직접 풀어봤으며, oracle sql developer 의 질의 결과와 직접 스프레드 시트에 값을 샘플링하여 비교했습니다. SQL 정석 문제입니다. 5.2 Group By절 - 예제 51. 각 부서(dept_id)별 평균 급여를 계산해서 보여주시오. select dept_id, avg(salary)from s_empgroup by dept_id;--order by dept_id;2. 각 부서(dept_id)별로 직책이 사원인 직원들의 평균 급여를 계산해서 보여주시오. select dept_id as "부서", avg(salary) as "평균 급여"from s_empwhere title = '사원'group by dept_id; 5.3 select 절에서의 group함수의 잘못된 사용1. 각 지..

Database 2025.04.30

[커널아카데미] 백엔드 12기 6주차 - SQL과 객체지향 엮어보기, SQL은 상상력이 필요함, 간절함이란?

Intro 1주일 중 기억에 남는 회고의 일부를 가져왔다. 0428 월 - 안다고 착각하지 말기자바 모듈 테스트에서 객체지향 개념까지는 제대로 알고있겠지 했지만, 1시간이 촉박했고 제대로 쓰지 못한 것이 있었다. 반복해야겠다 또 생각들었던 하루였다. 연산자 우선순위 ,규칙있는 반복문(1~9,/ 1~3) ,별찍기, 실수형 비교, 반올림( + 0.5 ) , 배열 퀴즈 패턴 풀기생성자 조건 - 모든클래스에 1개 이상의 생성자가 있어야함. ( 매개변수 타입 또는 개수는 오버로딩), 반환 타입 없음. (반환타입에 영향이 없음.) → 오버라이딩 조건이랑 헷갈림객체 지향 특징 3가지 - 기존 프로그래밍언어에 규칙 추가 / 코드 재사용 높음 / 변경 유리. 0429 화 - SQL 과 객체지향 엮어보기 == 감동오늘은..

회고 2025.04.29

예술적인 코드 모음 (계속 업데이트)

주관적입니다.HashMap 클래스의 put() 메서드의 구현부 목적 : 튜닝. Hash 자료구조는 O(1) 성능을 목표로함. 읽고 쓰기가 빈번한 작업을 최소화할 필요있음방법 : 인스턴스 변수 읽기(접근) 1번으로 줄임.인스턴스 변수 접근 최소화하기 위해 바로 로컬 변수 (tab)에 대입.조건식을 항상 검사하므로, tab 에 table 참조변수에 저장된 주소가 대입됨. 첫 의문증 : 왜 대입문을 if문 조건식 내부에 작성했나? 밖에 있으면 안되나? 실제 Key와 Value를 저장하는 1차원 배열과 링크드 리스트로 구성된 객체 자체를 가리키기 위해 putVal() 메서드 내부에서 tab에 table 참조변수에 저장된 주소를 대입해야한다. 근데 코드 봤는데 'tab = table' 대입문이 없었다. 자세..

Java 2025.04.29

[Java] 바이트코드로 분석하는 new T()가 안되는 이유

Intro제네릭 타입 변수가 new T()로 인스턴스를 생성할 수 없는 이유를 자바의 바이트 코드 관점에서 분석해보자. 제네릭 클래스가 아닌 클래스의 new 키워드 적용new 키워드가 어떻게 생성할 클래스를 알고 있는지 확인할 코드 예제이다. 아래 코드를 컴파일 한 후 NewKeywordTest.class 클래스 파일을 만든다. package CH12_Generics_Enums_Annotation;public class NewKeywordTest { public static void main(String[] args) { String str; str = new String("HELLO TEST"); }} 'javap -v 클래스파일명' 명령어를 통해 (*.clas..

Java 2025.04.27

[커널아카데미] 백엔드 12기 5주차 - 회고 및 공부한 내용 정리

회고[커널아카데미] 백 Intro이번 주는 낯선 개념을 많이 배워서 틀을 세우는데 시간이 생각보다 오래 걸린 듯하다. 빨리 잊어버리고 바로 복습하는 것의 중요성을 느낀 주였다. # 낯설거나 어려운 개념은 자주 많이 봐서 납득당하기 자바를 배울 때 지네릭, 람다와 스트림, 입출력 부분을 깊게 공부하지 않아서 수업에서 배울 때 이해 되는 것 같다가도 천천히 다시 볼 때는 궁금증이 계속 생겼다. 특히 규칙은 받아들여야 하는데 머릿속에 들어가 있지 않으면 다음 내용을 공부하면서 왜 안될까? 라는 생각 때문에 진도 나가는데 차질이 있었다. 예시로, Ch15.입출력에서 '스트림' 자체가 모호하게 다가왔는데 계속 '입력 스트림을 통해 자바 애플리케이션으로 데이터를 가져옴.' 과 같이 주석에 작성하면서 공부를 했다..

회고 2025.04.27

[커널아카데미] 백엔드 12기 4주차 - 회고 및 공부한 내용 정리

Intro이번 주는 Collection Framework 진도를 나가면서 클래스와 메서드의 타입과 상속으로 인한 오버라이딩이 어떻게 되는지 궁금하여 소스코드를 들여다 보는데 많은 시간을 소요했다. 그래서 진도를 나가는데 차질이 생겨서, 수업을 들으면서도 조바심이 났던 일주일이었던 것 같다. # 항상 진도가 우선이다.공부를 하다가 궁금증이 생기면 이를 깊게 파고들어 해결하는 습관이 있는데, 진도를 나갈 것이 없다면 좋은 습관이라고 강사님께서 말씀해주셨다. 하지만, 진도를 다 나가지 않은 상태에서 Java API를 구체적으로 보는 것은 우선 순위를 따졌을 때 좋지 않다고 하셨다.또한 이번 주 피어세션에서 나의 학습 고충을 말씀 드렸더니, 1) 너무 궁금해서 다음 일을 못하겠다면, 일주일에 깊게 해결할 궁..

회고 2025.04.20

[Operating System] '동기화 되어있다'는 게 뭐예요?

Intro자바 수업을 들으면서 '어떤 클래스가 동기화 되어있다.' 라는 말을 자주 들었다. 이에 깊게 생각하지 않고 공부를 하던 중 다음 문제 때문에 StringBuilder를 보다가 동기화가 나와서 '동기화 되어있다' 의 정확한 의미를 알고자 글을 작성하게 되었다. 궁금해진 이유StringBuilder의 동기화 되어있다는게 뭘까?HashSet 클래스에 toString() 메서드가 오버라이딩 되어있지 않다. 그럼 어디에 toString()이 오버라이딩 되어있기에 저장된 값이 '[ 1, 3, 2 ] 처럼 대괄호로 값을 출력할까'에 대한 궁금증으로 조상 클래스를 타고 가보니 AbstractCollection 클래스에서 toString()이 오버라이딩 된 것을 확인했다. 'StringBuilder를 쓴 이..

Operating System 2025.04.17

ArrayList 클래스의 remove() 메서드 파해치기

Intro자바의 정석 기초편의 ArrayList 실습을 진행하다, ArrayList 클래스의 오버로딩된 remove(Object o) 메서드를 직접 까보던 중에 'remove의 Object o 인자로 new Integer(1)을 줬는데, 어떻게 ArrayList에 저장된 new Integer(1) 객체와 주소 비교를 해서 지우는 거지?' 라는 코드를 보고 시작된 것이다. 사실 내용(1)을 비교하는 거라면 이해가 갔을 것이다. 하지만, 실제 ArrayList.java에 존재하는 'public boolean remove(Object o)' 는 Object 클래스의 equals()로 ArrayList에 저장된 Integer 객체와 인자로 받은 Integer 객체의 주소를 비교하고 있다. 문제 [28번 라인]..

Java 2025.04.15

[커널아카데미] 백엔드 12기 3주차 - 회고 및 공부한 내용 정리

Intro 커널 아카데미 3주차를 접어들면서 공부하는 습관이 익숙해졌다. 학습 시간을 더욱 늘리고 싶은데 7시만 되면 진이 빠져서 체력을 늘리는게 필요하다는 생각이 많이 드는 시점이다. 한 주를 지내면서 느낀점은 다음과 같다.   느낀 점# 기초가 있어야 응용이 되는구나온라인 강의와 실시간 강의를 듣고 실습하는 것만으로는 부족하다. 자바의 정석 책을 이해가 될 때까지 보고 그 다음에 실습을 하나하나 진행하다 보니, 뒷 내용을 봤을 때 앞에서 한 얘기가 연결되어 이해하는 데 도움이 되었다. 특히 실습하면서 응용이 되는 것 같다. # 이론과 코드로 보는 것은 다르다자바의 정석 연습문제를 풀다가 내가 생각한 답과 실행결과가 달라서 왜 다른가에 대한 답을 GPT에게 바로 얻고 싶지 않고, 수업에서 배운 내용을 ..

회고 2025.04.13