본문 바로가기

전체 글57

[Linux] Linux는 무엇이고, Ubuntu는 무엇일까 개요 Linux는 커널을 기반으로 하는 운영체제이고, Ubuntu는 Linux의 배포판이다. 목차 1. 리눅스에 대해 알아보자. 리눅스를 왜 많이 사용할까? 커널은 무엇일까? 운영체제는 무엇일까? 운영체제와 커널의 차이는 무엇일까? 2. 우분투에 대해 알아보자. 우분투를 사용하는 이유 3. 정리 1. 리눅스에 대해 알아보자. 리눅스(Linux)는 1991년 9월 17일 리누스 토르발스가 처음 출시한 운영 체제 커널인 리눅스 커널에 기반을 둔 오픈 소스 유닉스 계열 운영 체제 계열 이다. 리눅스를 왜 많이 사용할까? 안정한 운영체제이다. 사용자의 수가 많은 시스템이다. 많은 프로세스를 동시에 실행할 수 있다. windowOS, macOS와 같이 미리 정의되고 제한된 OS가 아닌 사용자가 커스텀하여 OS를 .. 2023. 2. 5.
[Java] 멀티 스레드 프로세스와 스레드 프로세스 실행 중인 프로그램으로, OS로부터 시스템 자원을 할당받는 작업 단위. 프로세스가 할당받는 시스템 자원 ex.) CPU 시간, 주소공간, Stack, Code, Data, Heap 등의 독립된 메모리 영역 프로세스 당 최소 1개의 스레드 (메인 스레드)를 가지고 있음. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 만약, 다른 프로세스의 자원에 접근하려면 프로세스 간 통신 (IPC / 파이프, 파일, 소켓 등..)을 사용해야 한다. 스레드 프로세스 내 실제 작업을 수행하는 단위로, 프로세스가 할당받은 자원을 이용하는 실행의 단위. 스레드는 프로세스 내 주소공간, 힙 공간의 자원들을 같은 프로세스 내 스레드끼리 공.. 2023. 1. 29.
[자바 ORM 표준 JPA 프로그래밍] 영속성 관리 개요 JPA 영속성 컨텍스트에 대해 알아보자. 목차 영속성 컨텍스트란? 영속성 컨텍스트의 이점 Entity의 생명주기 (Entity LifeCycle) 영속성 컨텍스트란 정의 엔티티를 영구 저장하는 환경 EntityManager로 접근 가능 실제로 DB에 접근하기전에 영속성 컨텍스트 환경에 엔티티를 영속화 하겠다는 의미 (*영속화 : 참고 블로그 링크) EntityManager와의 관계 기본적으로 하나의 엔티티 매니저가 생성되면 1:1로 하나의 영속성 컨텍스트가 생성된다. 하지만 스프링 프레임워크와 같은 컨테이너 환경의 JPA에서는 여러 엔티티 매니저가 하나의 영속성 컨텍스트를 공유하게 된다. 컨테이너 환경에서의 JPA 컨테이너를 사용하는 스프링과 같은 환경에서는 개발자가 EntityManager를 생성.. 2022. 11. 27.
[자바 ORM 표준 JPA 프로그래밍] JPA 소개 개요 JPA 도입이 필요한 이유와 JPA가 무엇인지 알아보자. 목차 SQL을 직접 다룰 때 발생하는 문제점 패러다임의 불일치 해결을 위한 JPA 특징 JPA 란? SQL을 직접 다룰 때 발생하는 문제점 SQL mapper 를 사용하여 애플리케이션을 개발할 때의 문제점은 대표적으로 아래와 같다. - 엔티티를 신뢰할 수 없다. - SQL에 의존적인 개발을 하게 된다. 프로그램 운영을 하다보면 내부의 복잡성이 커지게 되는데, 그것에 대한 유지보수를 하기 어려워진다. 예를 들어, 회원테이블에 소속학교 필드를 하나 추가하는 단순한 작업만 살펴보아도 그렇다. 실 DB에 컬럼을 추가한 뒤, 해당 필드에 대한 조회,수정을 하는 작업을 하기위해서는 1.회원 클래스에 소속학교 필드 추가 2. select SQL, upda.. 2022. 11. 23.
[Programmers/Java] 베스트앨범 문제링크 => 베스트앨범 풀이. 1. unsortedGenreMap : 장르별 합계를 위해 HashMap 를 선언함. 2. reverseSortedGenreMap : 1의 HashMap을 value값인 총재생수의 내림차순으로 정렬함. 3. reverseSortedGenreMap을 순회 (1) unsortedPlayMap : HashMap 를 선언함 (2) reverseSortedPlayMap : (1)의 HashMap을 value값인 노래 재생수의 내림차순으로 정렬함. (3) reverseSortedPlayMap 중 2개씩만 정답 배열에 삽입 import java.util.*; class Solution { public int[] solution(String[] genres, int[] plays) { .. 2022. 11. 8.
[Programmers/Java] 자연수 뒤집어 배열로 만들기 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 12345 [5,4,3,2,1] class Solution { public int[] solution(long n) { // 방법1. 전통방법 long num = n; int cnt = 0; while(num != 0){ num /= 10; cnt++; } int[] answer = new int[cnt]; num = n; for(int i=0; num!=0; i++){ answer[i] = (int)(num % 10); num /= 10; } // 방법2. 정수를 문자열로 바꾸기 String.. 2022. 11. 4.