전체 글

전체 글

    공룡책으로 정리하는 운영체제 - Chapter 1

    공룡책으로 정리하는 운영체제 - Chapter 1

    Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 "Operating System 9th"를 기반으로 운영체제 내용을 정리 1.1 운영체제가 할 일(What Operating System Do) 컴퓨터 시스템은 하드웨어, 운영체제, 응용 프로그램 및 사용자로 구분된다. 하드웨어(Hardware) : CPU, 메모리 및 I/O 장치로 구성되어 기본 계산용 자원을 제공 운영체제(Operating System) : 다양한 사용자를 위해 다양한 응용 프로그램 간의 하드웨어 사용을 제어하고 조정 응용 프로그램(Application Program) : 워드 프로세서, 스프레드 시트, 컴파일러, 그리고 웹 브라우저 등 자원이 어떻게 사용될지 정의 운영체제는 컴퓨터 시스템이 동..

    [JPA] 다양한 연관관계 매핑

    [JPA] 다양한 연관관계 매핑

    인프런 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 내용 정리 다양한 연관관계 매핑 다대일(N:1, @ManyToOne) ⬌ 일대다(1:N, @OneToMany) 일대일(1:1, @OneToOne) 다대대(N:M @ManyToMany) 다대일(@ManyToOne) - 단방향 가장 많이 사용하는 연관관계이며, 반대는 일대다이다. 다대일(@ManyToOne) - 양방향 FK가 있는 쪽이 연관관계의 주인 양쪽을 서로 참조하도록 개발 일대다(@OneToMany) - 단방향 일대다 단방향은 일이 연관관계의 주인 테이블 일대다 관계는 항상 다쪽에 FK가 있음 객체와 테이블의 차이 때문에 반대편 테이블의 외래 키를 관리하는 특이한 구조 @JoinColumn을 꼭 사용해야 함. 그렇지 않으면 JoinTable방..

    [JPA] 연관관계 매핑 기초

    [JPA] 연관관계 매핑 기초

    인프런 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 내용 정리 연관관계 매핑이란, 객체의 참조와 테이블의 외래 키를 매핑하는 것을 말한다. 연관관계는 다음 3가지를 고려해야한다. 1. 방향(Direction) 방향에는 단방향과 양방이 있다. 객체는 참조용 필드를 가지고 있는 객체만 연관된 객체를 조회할 수 있으므로 방향이 존재한다. 두 객체가 서로 참조하는 관계를 양방향 관계, 한 객체에서 다른 객체만 참조하는 관계를 단방향 객체라 한다. class A { B b; } class B { A a; } 테이블은 외래 키 하나로 양쪽으로 조인이 가능하다. 따라서 테이블은 방향이 없다고 볼 수도 있고, 항상 양방향이라 할 수 있다. SELECT * FROM MEMBER M JOIN TEAM T ON M...

    [Java] 프로그래머스 Lv2 - 방문 길이

    [Java] 프로그래머스 Lv2 - 방문 길이

    🔗 문제 코딩테스트 연습 - 방문 길이 programmers.co.kr 💡 풀이 해당 문제는 문제 설명대로 구현하면 되는 문제이다. 접근 방식 '원래 좌표 -> 움직인 좌표'와 '움직인 좌표 -> 원래 좌표'를 String에 저장하여 Set에 저장한다. 양방향으로 저장했기 때문에 Set.size / 2를 반환한다. 💻 코드 import java.util.*; public class Solution { private static final int MAX = 5; private static final int MIN = -5; Set visited = new HashSet(); Map map = new HashMap(); public int solution(String dirs) { int y = 0; int..

    [Java] 프로그래머스 Lv2 - 스킬트리

    [Java] 프로그래머스 Lv2 - 스킬트리

    코딩테스트 연습 - 스킬트리 programmers.co.kr 💡 풀이 해당 문제는 문자열을 다루는 문제이다. 접근 방식 skills_trees 탐색을 하면서 skill에 존재하는 문자일 때 StringBuilder에 추가한다. skill과 비교하면서 순서가 올바르다면 answer에 1을 더해준다. 다른 사람의 풀이를 보니 정규식을 이용해서 간단하게 풀었던데 정규식 공부를 해야겠다. 💻 코드 class Solution { public int solution(String skill, String[] skill_trees) { int answer = 0; for (String s : skill_trees) { StringBuilder sb = new StringBuilder(); for (int i = 0; ..

    [JPA] 엔티티와 매핑

    [JPA] 엔티티와 매핑

    인프런 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 내용 정리 엔티티와 매핑 객체와 테이블 매핑 : @Entity, @Table 필드와 컬럼 매핑 : @Column 기본 키 매핑: @Id 연관관계 매핑: @ManyToOne, @JoinColumn @Entity 테이블과의 매핑 @Entity가 붙은 클래스는 JAP가 관리하며, 엔티티라 불린다. 속성 name JPA에서 사용할 엔티티 이름을 지정 기본값은 클래스 이름이고 가급적 기본값을 사용 ❗️주의사항❗️ 기본 생성자는 반드시 존재해야함 final 클래스, enum, interface, inner 클래스에서는 사용할 수 없음 저장할 필드에 final 사용 불가 @Table 엔티티와 매핑할 테이블 지정 속성 기능 기본값 name 매핑할 테이블 이름 ..

    [Java] 프로그래머스 Lv2 - 쿼드압축 후 개수 세기

    [Java] 프로그래머스 Lv2 - 쿼드압축 후 개수 세기

    코딩테스트 연습 - 쿼드압축 후 개수 세기 [[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15] programmers.co.kr 📝 문제 설명 0과 1로 이루어진 2n x 2n 크기의 2차원 정수 배열 arr이 있습니다. 당신은 이 arr을 쿼드 트리와 같은 방식으로 압축하고자 합니다. 구체적인 방식은 다음과 같습니다. 당신이 압축하고자 하는 특정 영역을 S라고 정의합니다. 만약 S 내부에 있는 모든 ..

    [Java] 프로그래머스 Lv2 - n^2 배열 자르기

    [Java] 프로그래머스 Lv2 - n^2 배열 자르기

    코딩테스트 연습 - n^2 배열 자르기 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부 programmers.co.kr 📝 문제 설명 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부터 i행 i열까지의 영역 내의 모든 빈 칸을 숫자 i로 채웁니다. 1행, 2행, ..., n행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다. 새로운 ..

    [IntelliJ] 인텔리제이 단축키 (mac 기준)

    [IntelliJ] 인텔리제이 단축키 (mac 기준)

    ⌘ : commant ⌥ : option ⌃ : control ⇧ : shift ⏎ : enter fn + ← : home fn + → : end 자주 사용하는 단축키 단축키 설명 ⌥ + ⏎ 퀵픽스 제안 ⌘ + N 생성자, Getter/Setter 등과 같은 코드 생성 ⌘ + ⇧ + ⏎ 스마트 자동완성 ⌘ + ⇧ + T 테스트 코드 생성 및 이동 ⌘ + ⌥ + V 변수로 추출 ⌘ + ⌥ + M 메서드로 추출 ⌘ + E 최근 파일 ⌘ + ⌥ + N Refactor ⌘ + ⌥ + P 매개변수로 추출 ⌘ + ⇧ + [ 이전 탭으로 이동 ⌘ + ⇧ + ] 다음 탭으로 이동 ⌘ + home 커서 최상단으로 이동 ⌘ + end 커서 최하단으로 이동 ⌘ + D 라인 복제 ⌘ + ⌥ + L 코드 정렬 ⌘ + F8 Br..