반응형

분류 전체보기 288

태태개발일지(CS지식)

1. Spring과 Spring boot의 차이점 - Spring과 Spring boot는 모두 스프링 프레임워크를 기반으로 한 자바 웹 개발 프레임 워크읍니다. 둘 간에는 몇 가지 차이점이 있습니다. - Spring은 개발자가 직접 설정 파일을 작성하고, 스프링 컨테이너를 구성하고, 필요한 빈 객체를 등록하고, 빈 객체간의 의존성을 설정해야하지만, boot는 프로젝트의 설정과 라이브러리 의존성을 자동으로 처리해 주는 기능을 제공하고 Jar파일을 만들 수 있다. - MVC,JPA,Security등의 기능을 자동으로 설정해준다. Actuator라는 모니터링 모니터링 기능 2. 스크립트 언어와 컴파일 언어의 차이 - 이미 기계어로 번역된 파일을 컴퓨터가 실행하므로, 스크립트 언어에 비해 빠르고, 소스코드에 ..

CS 2023.09.21

태태개발일지(Clean Code)

어느 순간 오래 지난 내 코드를 보면서도 분석 시간이 많이 필요하다는 것을 느끼고, 미래에 내가 봤을 때도 쉽게 이해 할 수 있는 코드를 짜야겠다는 생각에 Clean코드를 간단하게 정리 해 보았다. 의미 있는 이름 변수, 함수, 인수, 클래스 ,패키지명에도 이름을 붙인다. 첫 번 째 규칙: 의도를 분명하게 밝히자. '의도가 분명한 이름을 짓자' ex) int kong=100 보다는 Vegitable kong = new Vegitable(100); 으로 클래스를 정의하는 것이 더 의미가 분명하다. // 이름으로 의도가 파악되지 않는 이름 int d; // 경과 시간(단위: 날짜) // 이름으로 의도가 올바르게 파악되는 이름 int elapsedTimeInDay; 두 번째 규칙: 그릇된 정보를 피하라. 여러..

태태개발일지(트랜잭션)

트랜잭션 - 단일한 논리적인 작업단위 - 논리적인 이유(목적) 으로 여러 SQL문들을 단일 작업으로 묶어서 나눠질 수 없게 만든것이 transaction이다. * transaction의 sql문들중에 일부만 성공한다고 DB에 반영이 일어나지 않는다. START TRANSACTION; --> 트랜잭션 시작을 알림 AutoCommit은 OFF가 된다. UPDATE --> UPDATE --> COMMIT; -> 지금까지 작업한 내용을 DB에 영구적으로 저장한다. *transaction 종료 RollBack -지금까지 작업들을 모두 취소하고 transaction 이전 상태로 돌린다. AutoCommit - 각각의 sql문으 자동으로 transaction 처리해주는 개념 -sql문이 문제가 있었다면 알아서 rol..

DATABASE 2023.09.17

태태개발일지(운영체제)

일을 쉬지않고 계속 시키는 것이 OS의 숙제이다 놀고있는 프로세스가 있다면 실행할 준비가 되어있는 ready 상태의 프로세스를 선택하고, 그 프로세스에 CPU를 할당한다. CPU 스케줄링 결정은 다음의 네 가지 상황에서 발생 1. 한 프로세스가 실행 상태에서 대기 상태로 전환할 때 2. 프로세스가 실행 상태에서 준비 완료 상태로 전환될 때 3. 프로세스가 대기 상태에서 준비 완료 상태로 전환될 때 4. 프로세스가 종료될 때 디스패쳐 작업 - context switch - 사용자 모드로 전환 - 프로그램을 다시 시작하기 위해 사용자 프로그램의 적절한 위치로 이동 디스패치 지연 - 하나의 프로세스를 중지하고 다른 프로세스를 실행시킬 떄 소요되는 시간

CS 2023.09.06

태태개발일지(운영체제)

스레드? CPU 활용의 기본단위 - 스레드ID, PC , 레지스터 집합, 스택으로 구성 단일 스레드(스레드가 한개인 구조를 가지고 있다.) - 스텍, PC, 레지스터 모든게 하나인 스레드 -> 자원을 공유하지 않기 때문에 자원 공유하는 컨트롤을 고려할 필요가 없다. context switch 작업이 불필요하다. CPU가 성능이 좋더라도 활용을 할 수 없다 멀티 스레드(스레드가 여러개인 구조를 뜻한다.) 프로그램을 다수의 실행 단위로 나누어 실행한다. [장점] 대응적 측면: 일부가 차단되거나 장시간 작업 수행시에도 계속해서 실행 가능 자원 공유성: 프로세스의 자원과 상태를 공유, 효율적인 운영 경쟁성: 자신이 속한 프로세스의 자원을 공유하기 때문에, 스레드를 만들고 context switch를 진행하는 것..

CS 2023.09.05

태태코딩(운영체제)

프로세스 프로세스들은 독립적이거나, 협력적이다. 협력 프로세스는 데이터 공유를 포함하여, 프로세스들에게 영향을 주거나 받는다. ps 현재 실행중인 프로세스만 볼 수 있음 ps -ef | grep httpd httpd관련된 실행중인 프로세스를 볼수있음 501 18154 18023 0 2:09PM ttys000 0:00.00 grep httpd PID = 18154 sudo service httpd start -> httpd service 시작해서 확인하기. PID는 중복되지 않게 할당이 된다. 그래서 계속해서 커진다., Kill -9 PID를 사용하면 현재 실행중인 프로세스를 종료 시킬 수 있다. 협력: 정보 공유, 계산 가속화, 모듈성, 편의성 프로세스 간 통신 기법을 필요로한다. 소켓(Socket) -..

CS 2023.08.31

태태개발일지(프로세스)

프로세스 - 실행중인 프로그램 - 디스크에 저장된 수동적 파일이 메모리에 적재될 때, 비로소 프로세스가 됨 메모리상에서 프로세스가 특정위치에 할당을 받아서, 자기 메모리를 동적으로 조절하게 된다. Text : 실행코드가 존재 (프로세스) data: 어떤 영역에서 접근해도 가능한 데이터 heap: 프로그램 실행시 동적으로 할당되는 메모리 stack: 함수 호출 시 임시 데이터 저장 New Running Waiting Ready Terminated PCB 프로세스 제어 블록: 프로세스가 생성되면 같이 생성되고 종료되면 같이 없어진다. -> 스케줄링을 어떻게 해야하는지 알려줌 state , number , counter , registers, memory limits 프로세스 스케줄링 프로세스가 시스템에 들어..

CS 2023.08.25

태태개발일지(운영체제)

- 프로그램 실행 - I/O 수행 - 파일시스템 조작 - 통신 - 리소스 할당 - 로깅 - 보호와 보안 운영체제에게 무언가를 사용하고 싶다고 말하고 싶으면 -> 시스템 콜을 하면 된다. (나 이거 쓰고싶어) 사용자와 커널이 분리가 되어있다. -> 사용자가 주요 자원을 건들일 경우 큰일 날 수 있기 때문에 사용자와 커널의 공간이 분리 되어있고, System call을 통해서 Kernel에 요청을 하면 된다.

CS 2023.08.24

태태개발일지(운영체제)

컴퓨터 시스템의 기본 구성 1. 하드웨어(cpu, 메모리 , 입출력장치) 2. 운영체제 3. 응용 프로그램 4. 사용자(사람, 기계, 컴퓨터) 운영체제 - 커널(컴퓨터에서 항상 실행되는 하나의 프로그램) - 시스템 프로그램(모든 프로그램을 포함, 시스템 운영과 관련 있는 응용 프로그램) 운영체제가 하는 일 - 자원 할당 - 모든 리소스 관리 - 자원에 대한 충돌되는 요청 사이에서 효율적이고, 공정하게 사용 리소스 분배 운영체제는 제어 프로그램 -프로그램 실행을 제어, 오류 및 부적절한 사용 방지 CPU, 마우스, 입출력장치 , 메모리 등이 하나의 시스템 버승 Bootstrap - Pc의 전원버튼을 누른 직후부터, 운영체제가 메모리에서 동작하기 시작 할 때까지의 모든 과정 1) 메인보드에 전력 공급 2) ..

CS 2023.08.22
반응형