본문 바로가기

전체 글20

HTTP 완벽 가이드 스터디 회고 스터디 개요 팀 구성 및 도서 선택 데브코스 빙봉팀 팀원들, 서브멘토님(총 7명)과 'HTTP 완벽 가이드' 도서로 스터디를 진행하였습니다. 11월 15일부터 12월 14일까지, 총 5회 차의 스터디를 실시했습니다. 이 책은 총 756쪽에 달하는 아주 두꺼운 책인데, 시간 관계상 중요 부분을 함께 보는 것이 좋겠다고 판단하여 12장을 스터디 주제로 선정했습니다. 스터디 방식 매주 수요일 1시 전까지 GitHub Issues를 통해 각자 정리한 학습 내용을 공유하였습니다. 발표자를 미리 정하지 않고, 스터디 당일까지 모든 팀원들이 요약본을 댓글로 정리한 뒤 제비 뽑기로 발표자를 선정했습니다. 발표자는 장별로 10~20분 내외로 책 내용을 요약한 것이나 추가로 조사해 온 것들을 발표하고, 팀원들과 의견을 나.. 2023. 12. 28.
[데브코스] 자바 도서관리 미션을 하면서 배운 것들 - 유틸리티 클래스 또는 상수를 저장하는 용도의 클래스는 private 생성자를 선언하여 인스턴스화되거나 상속되는 것을 방지하자. public final class MessageConstants { public static final String ADD_BOOK_START = "도서 등록 메뉴로 넘어갑니다."; public static final String ADD_BOOK_END = "도서 등록이 완료되었습니다."; private MessageConstants() { } } - 공통되는 행동이 있을 경우, 함수형 인터페이스를 활용해보자. (Runnble, Supplier...) - 상태 패턴 객체의 상태에 따라 행동을 유연하게 변경할 필요가 있을 때 효과적으로 사용될 수 있는 패턴이다. 예시 : Boo.. 2023. 11. 23.
[운영체제] 프로세스 동기화 문제와 해결 방법 - 경쟁상태, 임계구역, 뮤텍스, 세마포어 + 예시 코드 무엇이든지 하나일 때는 문제가 없다가, 둘 이상 혹은 n개 이상부터 모든 문제가 시작된다...! 운영체제의 프로세스 동기화에 대해 습득한 지식을 내가 이해한대로 정리해보았다. 1. Race condition(경쟁 상태) 공유하는 데이터에 동시에 접근하여 연산을 할 경우, 순서에 따라 상황별로 연산의 결과가 다르게 나올 수 있는 상태를 Race condition이라고 한다. 위 그림처럼 공유 변수인 sum을 두고 값을 1 증가시키는 프로세스 두 개가 동시에 실행된다면 순서에 따라 올바르지 않은 결과를 얻을 수 있다. 2. Critical Section(임계 영역) race condition을 방지하기 위해 공유 데이터에 대한 연산 과정은 반드시 하나의 프로세스/스레드에 의해서만 실행이 되어야 하는데 그 영.. 2023. 4. 9.
[운영체제] 프로세스와 스레드 1. 프로세스의 개념 개발자로서 일할 때 반드시 필요한게 뭘까? 바로 컴퓨터이다. 운영체제는 컴퓨터라는 하드웨어에 설치되어 각종 하드웨어 자원과 컴퓨터 사용자 간의 매개체 역할을 하는 소프트웨어다. CPU, 디스크, 키보드, 마우스 등과 소통하며 우리가 시킨 일(프로세스)들을 효율적으로 처리할 수 있도록 운영체제가 열심히 일을 해준다. 일반적으로 프로그램은 저장 매체에 저장되어 있고, 사용자가 프로그램을 실행시키면 운영체제는 프로그램을 메모리에 올려 놓는다. 메모리에 있는 프로그램은 CPU에 의해 실행되거나 실행 준비중에 있는데, 이러한 프로그램을 프로세스라고 한다. Mac OS에서는 활성 상태 보기, 윈도우에서는 작업 관리자에서 손쉽게 해당 컴퓨터의 모든 프로세스를 볼 수 있다. (과거에 게임하다가 렉.. 2023. 3. 26.
운영체제 목차 인트로 운영체제란? 프로세스와 스레드 관리 프로세스와 스레드 프로세스 스케줄링 프로세스 간 동기화 및 통신 임계 구역과 상호배제, 세마포어와 뮤텍스 모니터 메시지 교착 상태 교착 상태란? 교착 상태의 조건 교착 상태 예방 교착 상태 회피 교착 상태 탐지 교착 상태 회복 기억장치(메모리) 관리 CPU와 메모리의 주소 바인딩 메모리의 계층 구조 및 관리 기법 고정/가변 분할 메모리 할당 가상 메모리 관리 페이징과 세그멘테이션 페이지 교체 알고리즘 디스크 스케줄링과 파일 시스템 디스크 스케줄링 파일 시스템 정보 보호 및 보안 다중 처리 시스템 분산 처리 시스템 임베디드 시스템 2023. 3. 20.
트랜잭션(1) - 트랜잭션이란? 자바 API 별 트랜잭션 처리 들어가기 전에 최근 개발을 하다가 @Transactional 이라는 어노테이션을 사용하면서 궁금증이 생겨 트랜잭션에 대해 찾아본 내용을 정리했습니다. 목차 트랜잭션이란? 자바 API별 트랜잭션 처리 JDBC JPA JMS JTA 스프링의 트랜잭션 처리(To be continued...) 트랜잭션이란? 트랜잭션의 사전적 의미 1. 거래 행위를 할 때 이뤄지는 작업 2. 어떤 행위를 할 때 이뤄지는 과정 출처 : Oxford Learner's Dictionaries 프로그래밍에서 트랜잭션이란 하나의 논리적인 작업을 수행하기 위해 필요한 연속적인 작업의 묶음을 의미합니다. 연속적인 작업 도중 하나라도 실패하면, 모든 작업을 작업 실행 이전의 상태로 되돌려야 합니다. 트랜잭션에서 작업을 수행하는 방법에는 대표적.. 2023. 2. 26.