페이지 교체 알고리즘
·
프로그래밍/운영체제
이번 글은 페이지가 무엇인지와 페이지를 교체하는 방법론을 설명한다. 💡 가상 메모리 컴퓨터의 메모리는 한정되어 있다. 그럼에도 불구하고 큰 데이터를 적재하거나 여러개의 데이터를 적재하고 싶을때가 있다. 그래서 사용하는 방식은 디스크를 메모리 처럼 사용하는 가상메모리기법이다. 가상메모리를 사용함으로서 실제로 메모리에 접근할땐 가상주소로 접근한다. MMU에서 가상주소를 관리해준다. 가상주소는 디스크를 포함하기 때문에, 요청한 페이지가 실제로 메모리에 없을 수도 있다. (디스크에 있음) MMU는 이럴때 메모리에 있는 어떠한 페이지를 내리고 디스크에 있는 페이지를 메모리에 적재하는 역할을 한다. (SWAP한다는 의미) 아래는 그 방식에 대해 나열하고 소개한다. 📌 페이지 교체 알고리즘 운영체제에서 원하는 페이지..
트랜잭션의 격리 수준 (PostgreSQL)
·
프로그래밍/DB
이 글에선 트랜잭션의 격리 수준을 간단히 소개하고 PostgreSQL에서 사용하는 방법을 알아본다. 📌 격리수준의 종류 > READ UNCOMMITTED 트랜잭션의 변경사항을 Commit하지 않아도 다른 트랜잭션에서 읽어들일 수 있음 dirty read 현상이 발생할 수 있다. (완료되지 않은 데이터를 다른 트랜잭션에서 접근하는 것) > READ COMMITTED (기본값) 트랜잭션은 Commit한 데이터만 읽어들임 non repeatable read 현상이 발생할 수 있다. (경우에 따라서 같은 읽기 명령이라도 결과가 다를 수 있음) > REPEATABLE READ 트랜잭션이 항상 자신이 생성되기 전에 변경된 데이터만 읽어들임 Update Lock phantom read 현상이 발생할 수 있다. (삭제..
공포의 400 Bad Request Request Header Or Cookie Too Large
·
카테고리 없음
포스팅하다 갑자기 아래와 같은 오류가 나타났다. 완료 버튼이 안먹히길래 임시저장이 당연히 될 줄알고 새로고침을 했더니? 엥? 이게.... 뭐지? 그리고 글을 날렸다. 임시저장도 없었다. 📌해결법 쿠키가 너무 많아서 그런 것 같다. 티스토리에 쿠키 오류가 자주 나타난다고 한다. 쿠키를 지워주자. 쿠키는 여기서 볼 수 있다. 쿠키 눌러서 오른쪽 마우스 버큰 누르면 쿠키가 사라진다. (쿠키가 사라졌으니 당연히 로그인도 다시해야 한다) 나처럼 소 잃고 외양간 고치지 말고 다른 플랫폼으로 이주 or 복사의 생활화?를 하자....
synchronized, CAS, ABA
·
프로그래밍/기타
멀티 스레드 환경에서는 공유 자원을 신경 써줘야 한다. 왜 그럴까? 아래를 보자. public class Tests { private static int count; @Test void nonMutualExclusion() throws InterruptedException { new Thread(() -> { for (int i = 0; i { for (int i = 0; i < 10000; i++) { count++; } }).start(); Thread.sleep(10000); System.out.println("count : " + count); } } - Result - count : 14699 분..
[MVC] MVC 패턴에서 프론트엔드 vs 백엔드?
·
프로그래밍/기타
나도 MVC패턴에 대해서 의미가 명확하지 않았고 백엔드에선 view라고 할것이 있나? 라는 궁금증이 들어 한번 찾아보다 스택오버플로우에서 재미있는 글을 봤다. 🤔 질문 model-view-controller 패턴에서 프론트엔드와 백엔드가 어떤 것을 의미하는지 모르겠어요. 데이터베이스에 접근권한이 있는 백엔드가 Model이고 프론트엔드는 View인가요? 😁 답변 엄.. 용어 정리를 먼저 해야 겠네요 프론트엔드 - 사용자가 볼 수 있는 부분입니다. HTML, CSS, 클라이언트 부분의 Javascript 처럼요. 데스크탑 앱 같은 경우는 GUI라고 할 수 있겠어요 백엔드 - 사용자가 볼 수 없는 부분입니다. 자바, php, ruby같은 걸로 만드는 서버 사이드 웹 애플리케이션입니다. 트위터를 예로 들자면 아..
[Java] Ant, Maven, Gradle
·
프로그래밍/기타
자바 빌드의 어려움 프로그램을 개발하다보면 여러 라이브러리를 쓰게된다. 그러다 보면 빌드 순서나 라이브러리 버전 등 고려할 사항이 많아지며 빌드가 복잡해진다. 개발자가 개발에 집중하지 못하고 빌드 매뉴얼에 더 신경써야 한다는 것이다. 또, 환경에 따라 빌드가 달라질 수 있어서 이것도 고려를 해야 한다. 유닉스에서 사용되던 C언어 빌드 스크립트 대표주자인 Makefile을 사용할 수도 있지만, 빌드가 더 복잡해짐에 따라 새로운 빌드 툴이 등장하게 된다. Ant 처음 등장한건 아파치에서 만든 Ant 였다. Ant는 당시 막 뜨던 XML을 설정파일로 사용했고, Make와 비슷하다. 근데.. 워낙 유연해서 빌드 과정을 하나하나 XML파일에 정확히 구성해야 했다. 그러다 보니 프로젝트가 진행됨에 따라 XML파일이..
[Kubernetes] Error: Region is not a recognized EC2 region: "ap-northeast-" (check you have specified valid zones?)
·
카테고리 없음
❗ Error: Region is not a recognized EC2 region: "ap-northeast-" (check you have specified valid zones?) 오우! kops에서 cluster를 생성하다 이런 오류가 나타났다! vagrant@ubuntu-xenial:~$ kops create cluster --name=kubernetes.*******.com \ --state=s3://************** --zones=ap-northeast-2 \ --node-count=2 --node-size=t2.micro --master-size=t2.micro \ --dns-zone=kubernetes.*******.com --cloud=aws zones=ap-northeast-..
[kubernetes] Error: unknown flag: --image
·
프로그래밍/기타
❗ Error: unknown flag: --image 아래에 있는 미니큐브 예제를 실행하려 했는데, 다음과 같은 오류가 떴다. Hello Minikube 이 튜토리얼에서는 Minikube와 Katacoda를 이용하여 쿠버네티스에서 샘플 애플리케이션을 어떻게 실행하는지 살펴본다. Katacode는 무료로 브라우저에서 쿠버네티스 환경을 제공한다. 참고: 로컬에서 kubernetes.io hello-node 라는 deployment를 생성하는 코드인데, Docker 이미지를 기반으로 컨테이너를 만든다. PS C:\WINDOWS\system32> minikube kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4 Error: unkno..
2jun0
'분류 전체보기' 카테고리의 글 목록 (11 Page)