공부 기록들

    프로세스 관리

    프로세스 관리 프로세스란 실행 중인 프로그램을 뜻한다. 디스크에 실행파일 형태로 존재하던 프로그램이 메모리에 올라가서 실행되기 시작하면 비로소 생명력을 갖는 프로세스가 된다. 프로세스는 CPU를 획득해 자신의 코드를 수행하기도 하고, 때로는 CPU를 반환하고 입출력 작업을 수행하기도 한다. 그러다 자신의 임무를 다 수행하면 종료되어 사라진다. 프로세스가 시작해서 종료할 때 까지 CPU에서 명령을 한꺼번에 수행하면 좋겠지만, 여러 프로세스가 함께 수행되는 시분할 시스템 환경에서는 타이머 인터럽트에 의해 짧은 시간 동안 CPU를 사용한 후 빼앗겼다가 추후에 다시 CPU를 획득하는 식으로 CPU 관리가 이루어진다. 따라서, 수행을 재개하는 시점에는 이전에 어디까지 명령을 수행했는지 정확한 상태를 재현할 필요가..

    CPU 스케줄링

    CPU 스케줄링 기계어 명령은 크게 CPU 내에서 수행되는 명령, 메모리 접근을 필요로 하는 명령, 입출력을 동반으로 하는 명령으로 나눌 수 있다. CPU 내에서 수행되는 명령은 Add를 예로 들 수 있다. CPU내의 레지스터에 있는 두 값을 더해 레지스터에 저장하는 명령이다.CPU 내에서만 수행되므로 명령의 수행 속도가 매우 빠르다. 메모리 접근을 수행하는 명령은 Load 명령과 Store 명령이 있다. Load 명령은 메모리에 있는 데이터를 CPU로 읽어들이는 명령이며, Store명령은 CPU에서 계산된 결괏값을 메모리에 저장하는 명령이다. 메모리 접근 명령은 CPU내의 명령보다는 오래 걸리지만 비교적 짧은 시간에 수행할 수 있는 명령이다. 입출력 명령은 시간이 오래걸리는 명령이고, 사용자 프로그램이..

    앞으로

    날짜 쓰는 것은 무의미 한 것 같다. 포스팅하기 애매한 그런 것들이 있는데 공부를 했다고 기록은 하고싶은데 내용이 없으면 좀 이상할 것 같다... 그냥 내용 정리만 간간히 써야겠다. 그리고 포스팅하기 어려운 저작권 관련도 있어서 그런 것은 그냥 비공개로 올려서 하든가 해야겠다!

    2020.06.21-22 JPA(5)

    2020.06.21-22 JPA(5)

    임베디드 타입은 객체안에 타입을 묶어서 보여주는 구조체라고 생각하면 편할 것 같다. city street zipcode 를 Address 라는 임베디드 타입으로 묶었고 그것을 Member.java에서 사용한 것이다. 하지만 위와 같이 Address 타입이 2개면 컬럼명이 겹치니 문제가 생길 것이다. 이를 위해 AttributeOverride를 통해 바꿔줄 수 있다. 그리고 실행시켜주면 바뀐 이름으로 나오고 오리지널 address 이름으로 나온 것을 확인할 수가 있다. member.java의 임베디드 타입 위에는 @Embedded 그 타입에는 @Embeddable를 사용한 것을 확인가능하다. 임베디드 타입은 해당 값 타입만 사용할 수 있는 의미 있는 메서드를 생성할 수 있다. 재사용성이 높고 응집도가 높다..

    2020.06.18 JPA(4)

    2020.06.18 JPA(4)

    출처 - 김영한님의 강의를 보고 정리하였습니다. 이번에는 상속관계를 매핑해볼 것이다. 3가지의 방법이 있다. 1. 조인 전략 2. 단일 테이블 전략 3. 구현 클래스마다 테이블 전략 밑의 album 과 movie 자바 파일이다. Entity는 붙여주고 상위인 Item 을 extends로 상속 받는다. Item class 이다. @Inheritance(strategy=InheritanceType.JOINED) 를 기입하면 조인 방식이 된다. 조인 방식은 위를 목표로 한다. 다음과 같이 new movie 후에 dir act name price를 기입하고 넣는다. 다음과 같이 나오게 된다. DTYPE은 ITEM 테이블에서 밑의 놈들이 누구인지 알려주는 타입인데, 위의 코드를 보면 @DiscriminatorCo..

    2020.06.17 JPA(3)

    2020.06.17 JPA(3)

    maven webapp으로 생성 build path 로 library new servertime 으로 jsp 오류 해결 main 폴더 밑에 java 생성 test 밑에 resources 생성 main resources 밑에 META-INF 폴더 만들고 persistence.xml 생성 pom.xml도 수정 실습 pjt 다음과 같이 생성. 테이블 생성완료. /test 말고 따로 db 명 해서 만들어줌(jpashop으로 해둠) 실습 pjt end Order.java를 보면 id와 memberId가 있다. 실행을 해서 memberId를 가지고 온 다음에 Member에서 이 memberId를 통해 정보를 가지고 오는 것은 객체스럽지 않다. Order안에 그냥 Member를 넣어주면 더 좋을텐데.. 이것을 해결하..

    2020.06.16  JPA(2)

    2020.06.16 JPA(2)

    출처 - 김영한님의 유료강의를 듣고 정리한 글입니다. 영속성 컨텍스트 엔티티를 영구 저장하는 환경 이라는 뜻을 가지고 있다. 엔티티의 생명주기 *비영속(new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 *영속(managed) 영속성 컨텍스트에 관리되는 상태 *준영속(detached) 영속성 컨텍스트에 저장되었다가 분리된 상태 *삭제(removed) 삭제된 상태 Member member=new Member(); member.setId("member1"); member.setUsername("회원1"); 은 비영속된 상태에 현재 있다. 이제 이것을 EntityManager em=emf.createEntityManager(); em.getTransaction().begin(); //E..

    2020.06.15  JPA(1)

    2020.06.15 JPA(1)

    스프링 부트를 공부하려던 찰나에 JPA를 공부하게 되었다 객체 지향언어는 아이러니하게 관계DB 와 엮을 때에 객체답게 모델링 할 수록 매핑 작업이 늘어나게 된다. 지난번, mvc 프로젝트를 할 때에 느꼈다. mapper로 bean으로 받아와서 그 값을 꺼내서 다른 곳에 일일이 넣은 다음에 model 로 넘겨주던 일을... 하지만, 이것을 컬렉션에 넣듯이 진행할 수가 있다. sql문을 직접 입력하지 않아도 된다. 객체를 자바 컬렉션에 저장 하듯이 DB에 저장하는 것이다. JPA(Java Persistence API)를 통해서 말이다. JPA는 자바 진영의 ORM 기술 표준이다. ORM 이란 Object Relational Mapping 으로 객체는 객체대로 설계를 하고, 관계형 DB는 관계형 DB대로 설계..