공부 !
-
[ 운영체제 ] synchronized (JAVA)공부 !/Computer Science 2022. 6. 16. 16:08
synchronized 스레드가 하나의 자원을 사용하고자 할때 해당 스레드만 제외하고 나머지 스레드가 자원에 접근 못하도록 막는 것을 동기화라고 한다 자바에서는 Synchronized 키워드를 통해 객체에 대한 동기화가 이루어지며 동기화된 블록에는 한 시점에는 하나의 스레드만이 접근 및 실행되도록 조정한다 synchronized 키워드를 통해 임계영역을 설정하여 한 번에 하나의 스레드만 접근하도록 하는것이라고 이해하면 된다 ! 자바 프로그램은 기본적으로 메인 스레드가 main() 메소드를 실행 시키며 시작된다 마지막 코드를 실행하거나 return 을 만나면 종료되는데 JVM 이 생성한 메인 스레드는 별도의 작업 스레드를 만들어 이를 병렬로 실행 시킬 수 있다 멀티스레드를 생성한다는 의미로 멀티스레딩에서는..
-
[ 운영체제 ] 동기화 객체의 종류와 특징 Synchronization Object공부 !/Computer Science 2022. 6. 16. 00:13
동기화 객체 동기화 객체는 커널에서 제공하는 객체로 스레드 사용시 문제가 되는 자원 공유시 충돌에 대한 해결방법이다 ! 여러 스레드의 실행을 조정하기 위해 대기함수 중 하나에서 핸들을 지정할 수 있는 개체로 이해하면 된다 동기화 객체의 종류 운영체제가 제공하는 동기화용 커널객체에는 뮤텍스, 세마포어, 이벤트 등이 있다 사용자 모드 동기화 객체로는 크리티컬 색션이 있다. 뮤텍스 ( CMutex ) : 스레드와 프로세스를 동시화 시키는데 사용한다 일반적으로 스레드를 동기화할때 큰 비용이 드는 뮤텍스보다 크리티컬 섹션을 사용한다 세미포어 ( Semaphore ) : 크리티컬 섹션이나 뮤텍스가 한 번에 한 스레드나 프로세스만이 특정 리소스에 접근이 가능한 것과는 달리 동시에 여러 스레드나 프로세스가 특정 리소스..
-
[ 운영체제 ] 동기와 비동기 Synchronous and Asynchronous공부 !/Computer Science 2022. 6. 15. 19:12
동기 동기는 ajax 에서 많이 사용된다 해당 데이터를 모두 가져와 다음 테스크에서 함께 사용하는 경우가 많기 때문이다 동기는 하나의 물길이라 생각하면 이해가 쉽다 순차적으로 처리하는 경우 비동기에 비해 결과값 처리가 느리지만 디버깅이 쉽다는 특징이 있다 비동기 비동기는 다양한 작업이 동시에 일어난다 메인화면이 노출되는데 실시간 채팅창이 로딩되어 보여지고 .. 등 동시에 여러 작업이 일어난다 한 테스크에서 에러가 나더라도 다른 테스크에 영향을 끼치지 않고 개별적으로 진행된다 비동기는 여러가지 로직이 동시에 처리되고 매우 빠르게 결과가 도출된다 다른 테스크의 결과값을 받아 쓸때 이를 조절해야한다 동기와 비동기 차이 동기는 순차적이고 직렬적으로 테스크를 수행하고 비동기는 병렬적으로 테스크를 수행한다 서버에서..
-
[ 소프트웨어 공학 ] TDD 테스트 주도 개발공부 !/Computer Science 2022. 6. 3. 15:45
TDD TDD란 Test Driven Development 의 축약으로 테스트 주도 개발이다 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나로 개발자는 먼저 요구사항을 검증하는 자동화된 테스트 케이스를 작성하고 작성한 테스트를 통과하기 위한 최소한의 코드를 생성한다 테스트 코드를 먼저 작성하게 되면 깔끔한 코드를 작성할 수 있고 장기적으로 개발 비용을 절감할 수 있다 TDD 방법 테스트 주도 개발의 순서는 실패하는 작은 단위 테스트를 작성한다 빨리 테스트를 통과하기 위한 프로덕션 코드를 작성한다 그 후 테스트 코드를 작성한다 ( 실패테스트가 없을 경우 성공 테스트를 작성한다 ) 새로운 테스트를 통과하기 위해 프로덕션 코드를 추가하거나 수정한다 1-4 단계를 반복하며 실패 / 성공의 모든 테..