728x90 반응형 전체 글602 [java/개념] 세마포어(Semaphore)와 뮤텍스(Mutex) 참고 자료 1) 우테코 : https://www.youtube.com/watch?v=oazGbhBCOfU 2) 세마포어 자바소스 : https://blog.naver.com/vanillasea81/220405264484 이번 포스팅은 세마포어(Semaphore)와 뮤텍스(Mutex)에 대해 알아보겠습니다. 먼저 세마포어와 뮤텍스에 대해 알아보기 전, 몇가지 알아봐야할 것이 있습니다. 1. 교착 상태 두 가지 이상의 작업이 서로 상대방의 작업이 끝나기를 하염없이 기다리는 상태를 말한다. 서로 사용할 수 있는 공유된 리소스(종이, 연필) 등을 공유 자원 혹은 임계 영역이라 한다. 2. 임계 영역 임계 영역은 작업들이 리소스를 같이 사용할 수 있는 공유 자원이 있는 곳이므로 한 작업이 자원을 점유하면, 다른 .. 2021. 11. 6. [Java/JPA] JPA 개념 JPA(Java Persistence API')는 자바 ORM 기술에 대한 API 표준이다. ORM이란, 'Object Relational Mapping'의 약자로 객체와 관계형 데이터베이스를 매핑해주는 것을 말한다. ORM 기술이 등장한 계기는? 1) 개발자가 SQL을 매핑하는 역할을 반복해야함 : 자바 객체를 SQL을 통해 데이터베이스에 관리하게 하고, 데이터베이스에 저장된 데이터를 자바 애플리케이션에서 사용하려면 SQL을 통해 다시 자바 객체로 변환하는 반복적인 작업 2) 객체와 관계형 데이터베이스의 패러다임의 불일치 : 자바는 객체지향 패러다임, 관계형 데이터베이스는 데이터를 정규화해서 잘 보관하는 것을 목표로 함. : 객체를 DB에 넣기 위해서는 SQL 문을 통해 변환해서 저장, 데이터베이스에서.. 2021. 10. 15. [Vue] Vue 개발을 위한 환경 설치(Node.js, VS Code, Lite server, Git) 1. Nodejs.org로 가서 LTS를 다운로드 한다. (https://nodejs.org/en/) 2. 다운받은 파일 설치를 진행한다. 3. 명령 프롬프트를 띄워서 Node.js가 설치되었는지 확인한다. > node --version 4. 에디터를 설치한다. 에디터는 VS Code를 사용할 것이다.(https://code.visualstudio.com/) 위 링크를 타고 다운을 받는다. 에디터는 본인이 편한 편집기를 사용하면 된다. 5. Lite Server(개발 서버) 설치(https://github.com/johnpapa/lite-server) 위의 깃헙 사이트에서 Global Installation 섹션의 명령어를 실행한다. > npm install --global lite-server 6. 크.. 2021. 10. 7. [Spring Framework] DI(Dependency Injection : 의존성 주입)와 IoC(Inversion of Control : 제어의 역행) https://www.youtube.com/watch?v=GKoCibDM6Ns 참고 동영상 : SKplanet Tacademy 1. IoC IoC의 개념 IoC(제어권의 역전)이란, 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미 ※ 컴포넌트 의존관계 결정 (Component dependency resolution), 설정(configuration) 및 생명주기(lifecycle)를 해결하기 위한 디자인 패턴(Design Pattern) IoC가 아닌 경우는 개발자가 직접 객체들을 생성하는 작업들이 있다. Object o1 = new Object(); Object o2 = new Object(); IoC인 경우, 프레임워크에서 제공하는 컨테이너가 객체를 생성해서 개발자의.. 2021. 10. 1. [백준/java] 1644번: 소수의 연속합 - 투 포인터 + 에라스토테네스의 체 에라스토테네스의 체를 이용하여 소수를 먼저 구하고, 투 포인터로 소수의 합이 N과 일치할 때 정답의 개수를 구하는 문제이다. 예외처리를 잘해주지 않으면 틀리는 문제이다. 단순히 투포인터 문제라 두개의 점으로 시작하는 방식으로 구현했었다. 소수가 2, 3, 5, 7... 소수를 두개로 시작하면 2, 3부터이니 solution 메서드의 두번째 for문의 rt를 1부터 순회하였다. 그렇게되면 N이 2일 때, for문은 answer를 증가하지 않는다. 그리고 N이 1이면 0을 리턴해줘야하는데, int lt = 0, sum = list.get(lt);를 하게 되면 소수가 2부터 시작하므로 1 이하로 존재하는 소수가 없다. 그러므로 n = 1일때, lt = list.get(lt); 를 하게 되면 IndexOutOf.. 2021. 9. 24. [백준/java] 2470번: 두 용액 - 투 포인터 값을 입력받을 때, 처음에 Scanner를 이용했었다가 시간초과가 4번정도 떴었다. BufferedReader로 바꾼 후에도 시간초과가 뜨길래 정렬 방식에서 문제가 있나 싶었다. 입력되는 값이 너무 크다보니 범위가 커져서 Arrays.sort()의 경우 최악의 경우는 O(N^2)까지 가는 경우도 있으니 ArrayList로 입력을 받아서 Collections.sort()로 정렬하면 수행시간이 O(N log N)이 보장되기 때문에 리스트로 입력받는 방법을 선택했다. 그리고 두 포인터 인덱스의 값의 합이 0일 때는 해당 인덱스들을 출력해야하기 때문에 두 포인터를 좁혀나가는 로직에서 break를 걸어주어야 한다. package twoPointer; import java.io.BufferedReader; impo.. 2021. 9. 24. 이전 1 ··· 50 51 52 53 54 55 56 ··· 101 다음 728x90 반응형