From 14cc2ba8eac5e425b5c2ab6e4d9d842fc9a69143 Mon Sep 17 00:00:00 2001 From: "LEE K.S" Date: Thu, 3 Oct 2024 22:08:19 +0900 Subject: [PATCH 1/2] mission:submit week1 mission --- mission/chapter02/mission.md | 48 ++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 mission/chapter02/mission.md diff --git a/mission/chapter02/mission.md b/mission/chapter02/mission.md new file mode 100644 index 0000000..0591d6b --- /dev/null +++ b/mission/chapter02/mission.md @@ -0,0 +1,48 @@ +# 진행중, 진행 완료한 미션 +```mysql +select b.name, b.content, b.point, a.status, r.name +from member_mission as a join mission as b on a.id2 = b.id + join (select id, name + from restaurant) as r on b.id2 = r.id +where a.member_id = '내 id' +limit 10 offset 0*10; +``` + +# 리뷰 작성 +```mysql +insert into REVIEW(id,restaurant_id,score,content) +values (id,restaurant_id,5, + '음 너무 맛있어요 포인트도 얻고 맛있는 맛집도 알게 된 것 같아 너무나도 +행복한 식사였답니다. 다음에 또 올게요!!'); +``` +# 홈 화면 쿼리 +```mysql +select m.address, complete_mission.complete +from member as m + join (select member_id, count(*)/10 as complete + from member_mission + where member_id = 1 and status = '완료' + group by member_id ) as complete_mission + on m.member_id = complete_mission.member_id; + +select m.content,m.point, res.name, res.type, m.deadline +from mission as m join ( + select r.id,r.name,r.address, r.type + from restaurant as r + where address = (select address + from member + where member_id = 1) + ) as res on m.id2 = res.id +where m.id not in ( + select m_m.id2 + from member_mission as m_m + where member_id = 1 and status = '진행 중' +) +limit 10 offset 0*10; +``` +# 마이 페이지 +```mysql +select name, nickname, point, phone_number, email +from member +where id = 1; +``` \ No newline at end of file From ec7803e6baab45670d6959561f5b828669ff600d Mon Sep 17 00:00:00 2001 From: "LEE K.S" Date: Thu, 3 Oct 2024 22:08:30 +0900 Subject: [PATCH 2/2] =?UTF-8?q?mission:=EC=B6=94=EA=B0=80=EA=B3=BC?= =?UTF-8?q?=EC=A0=9C=20=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mission/chapter02/java_mission.md | 108 ++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 mission/chapter02/java_mission.md diff --git a/mission/chapter02/java_mission.md b/mission/chapter02/java_mission.md new file mode 100644 index 0000000..0cbd633 --- /dev/null +++ b/mission/chapter02/java_mission.md @@ -0,0 +1,108 @@ +# static & jvm메모리 & classloader + +
+

static

+⇒ '정적 변수' = '클래스 변수' +
    +
  • 클래스 내부에 선언
  • +
  • 프로그램이 실행되어 메모리에 올라갔을 때 딱 한 번 메모리 공간 할당
  • +
  • 모든 인스턴스가 값을 공유
  • +
  • 메소드 영역에 저장
  • +
  • 인스턴스 생성 없이 클래스 이름으로 접근 가능
  • +
  • static 메소드는 인스턴스 변수에 접근 불가 + → 객체를 생성해서 접근해야 함
  • +
+

jvm 메모리

+

JVM (Java Virtual Machine)

+
    +
  • 자바 프로그램을 실행하기 위한 가상 머신
  • +
  • 운영체제나 하드웨어에 독립적으로 동작 + → wora (write once, run anywhere)
  • +
  • 자바 소스 코드 → 자바 컴파일러 → 자바 가상 머신(JVM)
  • +
+

JVM 메모리

+
    +
  • JVM은 java 프로그램이 사용하는 메모리를 자동으로 관리
  • +
      +
    • 가비지 컬렉터를 통해 사용하지 않는 객체를 자동으로 해제
    • +
    +
  • 직접 메모리 관리를 할 필요가 없어짐
  • +
+

JVM 메모리 구조

+
    +
  • 힙 영역
  • +
      +
    • 객체, 인스턴스 변수가 저장
    • +
    • 모든 객체는 힙 영역에 동적 할당
    • +
    • 가비지 컬렉션에 의해 관리
    • +
    • 모든 스레드가 공유
    • +
    +
  • 메소드 영역
  • +
      +
    • 클래스 메타데이터, static 변수, 상수 등이 저장
    • +
    • 클래스가 로드 될 때 처음 이 영역에 로드되고 프로그램 실행동안 유지
    • +
    • 모든 스레드가 공유
    • +
    +
  • 스택 영역
  • +
      +
    • 스레드마다 개별적으로 할당
    • +
    • 메소드 호출 시 생성되는 지역 변수, 파라미터, 반환 주소 등이 저장
    • +
    • 빠른 접근, 제한된 크기
    • +
    +
  • PC 레지스터
  • +
      +
    • 각 스레드가 실행 중인 명령의 주소를 저장
    • +
    • 모든 스레드는 독립적인 pc 레지스터를 가짐
    • +
    +
  • 네이티브 메소드 스택
  • +
      +
    • Java 외부 네이티브 코드(C/C++ 등)에서 호출되는 메소드를 위한 스택
    • +
    • 네이티브 라이브러리와 연동되는 메소드의 호출을 처리
    • +
    +
+

classloader

+⇒ JVM이 클래스를 메모리에 올리고 실행할 수 있게 준비하는 역할 +
    +
  • 동적 로딩 구현
  • +
  • 필요한 시점에 메모리에 로드되도록 함
  • +
  • .class 파일을 찾아 메모리에 적재
  • +
+

classloader 종류

+
    +
  • 부트스트랩 클래스 로더
  • +
      +
    • 기본적인 클래스 로더
    • +
    • JVM이 실행되는 데 필요한 필수적인 클래스 로드
    • + ex) java.lang, java.util 등 +
    • Java로 접근하거나 확장 불가
    • +
    +
  • 확장 클래스 로더
  • +
      +
    • JDK 확장 기능 제공하는 클래스 로드
    • +
    • java.lang.ClassLoader 클래스에 의해 구현
    • +
    • 사용자가 직접 확장하거나 접근 가능
    • +
    +
  • 애플리케이션 클래스 로더
  • +
      +
    • JVM 기본 클래스 로더
    • +
    • 사용자가 작성한 대부분의 클래스가 적재됨
    • +
    + +
+
+ +# Collection interface +
+

Collection

+
    +
  • Java의 Collection Framework 중 가장 상위에 위치하는 인터페이스 중 하나
  • +
  • 여러 객체를 모아 관리할 수 있는 자료 구조 정의
  • +
  • List, Set, Map, Queue, Deque 등의 기본 동작 방식을 규정
  • +
+

Collection interface 특징

+
    +
  • 객체의 그룹을 나타냄
  • +
  • 크기가 유동적이며 다양한 타입의 요소들을 저장하고 관리
  • +
  • 객체 간 중복 허용 여부나 저장 순서에 대한 명확한 규정이 없음
  • +
+
\ No newline at end of file