본문 바로가기

분류 전체보기

(94)
[1일1cs] 데이터베이스의 이상현상 데이터베이스의 이상현상은 테이블에서 일부테이블의 종속이나 중복으로인해 데이터 조작시 불일치가 발생. 종류로는, 삽입이상 삽입시 의도치 않은 데이터까지 삽입해야만 데이터가 삽입되는 현상 갱신이상 데이터중 원하는 데이터 전부가 아닌일부만 갱신되는 현상 삭제이상 삭제시 원치않는 데이터 까지 삭제가 되는 현상 이 이상현상들은 정규화를 통해 해결해야한다.
[1일1cs] 로드밸런싱과 로드밸런서 로드밸런싱은 분산식 웹 서비스로 많은 사람들의 트래픽을 1대의 서버로 처리하는 것은 무리가 있으므로 여러대를 두고 분산하여 처리하는 방식이다. scale-out(서버 여러대를 두어 분산을 통해 처리속도 증가) 를 결정시 사용되는 방식이다. (여기서 로드(load)는 여기서 load란 현재 처리중이거나 대기중인 작업.) 로드밸런서는 클라이언트와 서버 사이에 존재하여 로드 밸런싱을 해주는 관리해주는 장치(기술) 로드 밸런싱 기법으로는 cpu도 virtualization할때 쓰는 라운드로빈 그리고 최소연결방식(가장 적게 연결된 서버에 연결) ip해시 방식등이 있다.
[1일1cs] 데이터베이스 트랜잭션 트랜잭션이란? DB의 질의문(select insert delete update)으로 DB에 접근시 수행하는 작업단위. 여기서 작업단위는 사람 기준 하나의 단위인데 예를들어 자판기에서 콜라 하나를 뽑는다. 이라 치면 내돈 에서 update -1400 자판기 에서 update 콜라 수량 -1 두 과정이 하나의 작업단위이고 이를 트랜잭션이라 한다. 트랜잭션의 특징은 원자성 (1 or all 즉 db에 모두반영되거나 아예 반영되지않는다.) 일관성 (결과가 항상 일관됨) 독립성 (각각 트랜잭션 간에 연산결과에 영향을 미치지 않는다.) 지속성( 반영시 영구 지속) 이 있다. commit 은 깃에서도 자주 보았듯이, 트랜잭션 적용내용을 확인하고 반영한다. rollback은 비정상적 트랜잭션 발견시 트랜잭션 시작할 때..
[1일1cs] 세마포어 뮤텍스 지금은 자신있는 운영체제문제다. 세마포어는 lock을 잡는 쓰레드 개수를 조정한다. lock을 잡는 이유는 공유 자원에 동시 접근해 문제가 생기는 race condition방지. 즉 세마포어 함수는 정수값을 인자로 갖는 객체인데, 정수값은 쓰레드 개수이다 여기서 양수면 사용중인 쓰레드남은 개수이고 음수면 대기중인 쓰레드 개수이다. 즉 멀티 쓰레드가 공유 자원 접근 시 사용 semwait() 하면 감소 sempost() 하면 증가 및 대기중인 쓰레드를 깨워줌. 뮤텍스는 하나의 쓰레드를 기반으로 한 상호 배제 기법. 공유자원에 접근 권한이 있는 쓰레드만 사용가능. 나머지는 걍 대기해라. (상호 배제의 약자 이기도함) 세마포어와 달리 접근 쓰레드개수가 only 1개. lock unlock사용. 기똥찬 설명 링..
[1일1cs] 사설 ip와 공공ip (해당 글은 두서없이 모바일로 외운 내용만을 적는 것이기에 보시기 불편하실 수 있습니다. ) ip란 모든 인터넷에 연결된 모든 장치를 식별하기 위한 주소이다. 즉 식별자 역할 여기서 공공 ip란 모든 네트워크에서 고유성을 갖는다. 하지만 사설 ip는 한 네트워크 내에서 고유성을 갖는다. 즉 공유기가 연결되는 장치마다 사설 ip를 부여한다. 그렇기에 인터넷은 사설ip주소를 알지 못한다. 그래서 공유기가 사설ip가 들어오면 공공ip로, 공공ip가 들어오면 사설ip로 바꿔 전달한다. 그렇기에 정리하자면 할당 주체는 공공ip의 경우 인터넷 공급자, 사설ip의 경우 공유기 공공ip는 모든 네트워크 망내에서 고유성을 갖고 사설ip는 해당 네트워크 내에서만 고유성을 갖는다. 할당 대상은 공공ip는 회사부터 개인까지,..
[1일/1cs] 데이터베이스 정규화 (해당 글은 두서없이 외운 내용만을 적는 것이기에 보시기 불편하실 수 있습니다. ) 데이터 정규화는 중복을 최소화 하고 함수 종속성을 따라 관련이 없는 테이블을 분리하기 위함. 이는 이상 현상 발생 가능성을 줄일 수 있지만, 연산시간이 증가한다는 단점. 기초 정규화 1정규화 : atomic (1 or all 이라고 아는데 여기선 1이라고 쓰는 듯) 하게 하나의 테이블에 하나의 속성만 갖게. 예를들어 한 사람의 직업이 두개라면 분류해서 적는다. 2정규화 : 기본키에 부분적으로 종속되는 것이 아닌, 완전히 종속되게, 즉 기본키의 일부에만 종속되선 안됨. 3정규화 : a->b b->c a->c와 같은 이행 종속이 되선 안됨. 원치않는 결과를 불러옴. bcnf : 여러개의 후보키가 존재하는 이상현상을 해결. 고..
[Android] ViewBinding vs DataBinding viewbinding이란, view와 상호작용하는 코드를 더욱 쉽게 작성할수 있도록 도와줍니다. 모듈에 buildFeatures{ viewBinding true } 를 작성함으로써 사용가능합니다. 또는 , android { ... viewBinding { enabled = true } } 과 같이 사용합니다. MainActivity단에 가서, 사용법은 먼저 val로써 binding을 선언해줍니다. by lazy는 지연초기화인데, 이후에 다룰 예정입니다. binding.root는 해당 참조하는 뷰를 가리킵니다. class MainActivity : AppCompatActivity() { val binding by lazy {ActivityMainBinding.inflate(layoutInflater)} o..
[Web Fe] CSS 정리하기 4 이번 포스팅은 마지막 CSS정리를 해보는 글입니다. 상속 상속은 부모나 조상 요소에 적용된 CSS 프로퍼티를 자식 혹은 후손 요소가 물려받는 것입니다. 위의 코드를 실행해 보면 , article의 얍얍얍만 빨갛게하고싶은데 전부 빨게지는게 보일것입니다. 이는 이렇게 편하게 상속을이용해 한꺼번에 내부 태그들의 색상을 바꾸는 것입니다. 하지만 모든 프로퍼티가 상속되는것이 아닙니다. width나 height margin padding등 상속이 되지않은것도 많습니다. 상속 여부는 https://www.w3.org/TR/CSS21/propidx 링크에서 확인 가능합니다. 상속이 되지 않는 프로퍼티를 값을 상속받기를 원한다면, inherit를 써주면 됩니다. 제일 처음 css가 뭐라했는지 기억하실겁니다. cascad..