반응형 전체 글346 Spring 핵심원리 객체 지향 원리 적용 (1) 본 게시글은 인프런 김영한 선생님 강의 스프링 핵심 원리를 완강하고 배운 것을 남기고자 적은 포스팅입니다. 강의 링크는 아래와 같습니다. (강의 예제 코드는 웬만하면 적지 말라고 강의 공지사항에 적혀 있어서 이해 가능하게 코드를 짧게 남기겠습니다) https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/ 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 개발자가 되어보세요! 📢 수강 전 w.. 개발/Spring Core 2021. 12. 29. F.I.R.S.T 클린 코드 책에서 설명하는 깨끗한 테스트 코드를 작성하는 다섯 가지 규칙에 관한 게시글이다. 각 규칙에서 첫 글자를 가져와서 FIRST라고 부른다. F - 빠르게 (Fast) : 테스트는 빨라야 한다. 테스트가 빨리 수행되어 완료되어야 한다는 뜻이다. 테스트가 느리면 자주 돌릴 엄두가 안 생긴다. 자주 돌리지 않으면 초반에 문제를 찾아내 고치지 못한다. 코드를 마음껏 정리하지도 못하다. 결국 코드 품질이 망가지므로 테스트는 빨리빨리 돌아가야 한다. 즉 네트워크, 데이터베이스 등과 연동되는 코드들을 빠르게 수행하자는 뜻으로도 이해할 수 있다. (빨리 수행하려면 mocking이나 stub를 사용해야겠지..?) I - 독립적으로 (Independent) : 각 테스트는 서로 의존하면 안 된다. 한 테스트가 다.. 개발/Test 2021. 12. 21. 한 학기 회고, 방학 다짐 드디어 23학점 듣는 한 학기가 끝났다. 엄청난 과제의 양으로 스트레스받느라 나 자신 너무 고생했다.. 정말 말도 안 되는 시간이었다고 생각한다. 덕분에 여드름이 늘었네 ㅠㅠㅠㅠㅠㅠ 장거리 연애를 시작하면서 기차 안에서 학교 공부하려고 시작한 블로그다. 그래서인지 확실히 강의 때 들은 필기를 정리한 느낌으로 게시글을 작성해서 맥락도 없고 가독성도 좋지 않다. 방학을 맞이해서 앞으로의 공부 글은 가독성이 좋고 알아보기 쉽게 작성하는 것이 목표다. 놓친 과목들을 계절학기 들을 예정이지만 그래도 매일 나와의 약속을 정해보려고 한다. 크게 5가지 정도를 생각해보았다. 너무 늦게 잠들지 않고 오전에 운동하기. 근육통이 심한 날은 무게 치지 말고 가서 유산소라도 하거나 하체 하자 매일 기술 면접 대비 전공 정리. .. 기록 및 회고 2021. 12. 14. 입출력 시스템 입력 장치에는 마우스, 키보드, 게임 패드 등이 있다. 출력 장치는 모니터, 그래픽 카드, 프린터 등이 있다. 입출력 장치는 Lan 카드, 하드 디스크, USB 등이 있다. 입출력 장치는 CPU를 통해 입출력 정보가 들어가고 나오며 메모리에 이 정보들이 저장된다. 입출력 시스템은 입출력 장치 + 입출력 모듈이다. 입출력 장치를 제어하는 데 사용되는 것이 입출력 모듈이다. 이런 입출력 장치에서는 메인 메모리와 CPU 간의 데이터가 주고받는데 이 데이터가 돌아다니는 통로가 버스다. 버스는 데이터 버스, 어드레스 버스, 컨트롤 버스가 있다. 입출력 시스템에는 상태를 저장하는 상태, 제어 레지스터와 데이터를 저장하는 데이터 레지스터가 있다. 만약 키보드가 눌렸다면 이 상태는 상태, 제어 레지스터에 저장된다. 눌.. OS 2021. 12. 2. 데이터 과학과 빅데이터 2022. 12. 14. 01:30 수정 및 복습 시작 데이터 과학 데이터 과학은 필수적이다. 4차 산업혁명 시대로 진입하며 빅데이터, 사물 인터넷, 인공지능 등 핵심 기술의 중심에 데이터가 있다. 21세기의 원유는 즉 데이터다. 전통적인 방식으로 데이터를 수집하고 저장하는데 한계가 있다. 현대 데이터는 방대한 규모와 다양한 형태가 존재한다. 단순히 데이터를 분류하고 검색하는 것을 넘어, 방대한 양의 데이터 속에 숨겨진 규칙과 패턴을 찾아내 문제 해결에 활용하고 미래의 일을 예측하여 미리 준비하기를 우리는 원하고 있다. 이 말은 다양해진 데이터 활용에 대한 요구가 늘어난다는 것이다. 데이터 과학의 개념은 데이터를 수집한 후 분석을 통해 데이터를 정확히 이해함으로써 그 속에 숨겨진 새로운 지식을 발견하고,.. Database/Database 기초 2021. 11. 29. 가상 메모리 관리 2023. 5. 23. 20:51 1차 수정 가상 메모리 관리 가상 메모리는 메모리와 디스크를 같이 사용한다. 만약에 메모리 프레임에 접근할 페이지가 없으면 디스크 영역에서 페이지를 가져와 메모리 프레임에 페이지를 넣어야 한다. 이럴 때 페이지 대치의 필요성을 느낄 수 있다. 즉 할당할 메인 메모리 공간이 부족하면 대치가 필요하다. 페이지 대치란 페이지 부재(메모리에 접근할 페이지가 없다. fault)가 발생하면 메인 메모리에서 사용되지 않는 페이지(victim)를 없애고 새로운 페이지로 바꾸는 기법이다. 순서를 간단하게 알아보자. 희생자 페이지를 메모리에서 디스크로 내보낸다. 페이지 테이블의 타당, 비 타다 비트를 수정한다. 디스크에서 원하는 페이지를 프레임으로 가져온다. 새로운 페이지를 위한 페이지 .. OS 2021. 11. 26. Link Layer 2023. 02.06 13:00 복습 Link Layer 링크 계층은 물리적으로 인접한 노드를 연결시키는 역할을 한다. 즉 링크로 연결된 노드를 연결하는 것이다. 전기적 신호를 처리하며 네트워크 카드 (NIC)를 사용한다. 링크 계층의 기능 프레임화: 거의 모든 링크 계층 프로토콜은 네트워크 계층 데이터그램을 링크상으로 전송하기 전에 링크 계층 프레임에 캡슐화한다. 네트워크 계층 데이터그램이 들어있는 데이터 필드와 여러 개의 헤더 필드로 구성된다. 프레임 구조는 링크 계층 프로토콜에 의해 명시된다. 링크 접속: 매체 제어 접속 (medium access control, MAC) 프로토콜은 링크상으로 프레임을 전송하는 규칙에 대해 명시한다. 점대점 링크의 경우 MAC 프로토콜은 단순하다. 이 경우 송신자가.. Network 2021. 11. 24. 데이터베이스 응용 기술 2022. 12. 14. 01:00 수정 및 복습 시작 객체지향 데이터 베이스 객체지향 데이터 모델 객체지향 개념에 기반을 둔 데이터 모델이다 객체와 객체 식별자, 속성과 메서드, 클래스, 클래스 계층 및 상속, 복합 객체 등을 지원한다. 다양한 응용 분야의 데이터 모델링을 위한 새로운 요구 사항을 지원한다. 의미적으로 관계가 있는 데이터베이스 구조를 표현하기 위한 강력한 설계 기능을 제공한다. 특수한 몇몇 분야에서 사용된다. 객체와 객체 식별자 객체 지향 데이터 모델에서 객체(Object)는 현실 세계에 존재하는 개체를 추상적으로 표현한 것이다. 객체 지향 데이터 모델을 구성하는 기본 요소다. 각 객체는 시스템 전체에서 유일하게 식별될 수 있는 객체 식별자를 가지고 있다. 객체 간의 관계는 객체 식별자.. Database/Database 기초 2021. 11. 22. 가상 메모리 가상 메모리(논리메모리)는 물리 메모리에 디스크가 더해진 것이다. 가상 메모리가 디스크, 메모리에 모두 분산 할당을 진행한다. 이러면 메모리 공간이 엄청나게 커지는 이점이 있다. 이렇게 가상 메모리가 가능한 이유는 몇 가지가 있다. 우선 오류코드 루틴이다. 다음은 배열, 리스트, 테이블 중에서 일부만 사용하기 때문이다. 마지막으로는 자주 사용되지 않는 문서 편집기의 기능이다. 위에는 예시다. 잠깐 쉽게 알아보자면 한 프로세스가 존재한다. 그 프로세스는 실행될 때 꼭 프로세스의 모든 부분이 메모리에 가서 실행되지 않는다. 파워포인트 같은 경우에는 기능이 엄청 많지만 우리는 늘 그 모든 기능을 사용하지 않는다. 보통 자주 사용하는 기능만 사용한다. 이처럼 프로세스는 모든 기능을 메모리에 올리지 않고 필요하고.. OS 2021. 11. 19. 분산 메모리 할당 - 세그먼트 기법, 페이지화된 세그먼트 기법 페이징 기법을 이용해 분산 메모리 할당을 진행해도 여전히 내부 단편화 문제가 존재한다. 이를 막기 위해 다른 기법이 고안되었다. 바로 세그먼트 기법이다. 먼저 세그먼트란 무엇인가? 세그먼트란 연관된 기능을 수행하는 하나의 모듈 프로그램이다. 세그먼트는 단위 크기가 변하지만 페이징은 고정크기이다. 세그먼트 크기가 다르기 때문에 메모리가 페이지 프레임으로 나누어지지 않고 동적분할(가변분할)기법으로 메모리를 할당한다. 즉 세그먼트는 가변크기이고 페이지는 고정 크기다. 세그먼트는 즉 크기가 달라 length의 개념이 필요하다. 페이지 기법과 마찬가지로 세그먼트 기법도 매핑 테이블을 사용하는데 이걸 세그먼트 매핑 테이블이라고 한다. 세그먼트 주소매핑 예이다. 논리 주소는 우선 세그먼트 테이블의 세그먼트 번호와 변.. OS 2021. 11. 19. 분산 메모리 할당 - 페이징 앞에서는 연속 메모리 할당에 대해 알아보았다. 이번에는 분산 메모리 할당이다. 고정 분할의 내부 단편화 문제를 가변 분할로 해결했다. 그러나 가변 분할에서 외부 단편화 문제가 발생했다. 이런 문제를 해결하고자 분산 메모리 할당이 등장했다. 분산 메모리 할당은 한 프로세스의 메모리 할당 시 이 프로세스를 나누어서 분산적으로 메모리에 할당하는 것이다. 분산 메모리 할당의 종류는 페이징 기법, 세그먼트 기법, 페이지화된 세그먼트 기법이 있다. 먼저 2가지 단어 페이지와 프레임에 대해 알아야 한다. 페이지의 뜻 부터 알아보자. 페이지는 프로세스를 일정 크기의 블록으로 나눈 단위이다. 프레임은 메로리를 고정 크기 블록으로 나누는 단위이다. 페이징을 진행한다면 프로세스를 나눈 크기만큼 메모리도 똑같은 크기로 나누어.. OS 2021. 11. 18. 보안과 권한 관리 2022. 12. 14. 00:30 수정 및 복습 시작 데이터베이스 보안 데이터베이스 보안의 목표는 조직에서 허가한 사용자만 데이터베이스에 접근할 수 있도록 통제하여 보안을 유지하는 것이다. 물리적 환경에 대한 보안, 권한 관리를 통한 보안, 운영 관리를 통한 보안이 필요하다. 물리적 환경에 대한 보안은 말 그대로 자연재해 같은 데이터베이스에 물리적 손실을 발생시키는 위험으로부터 데이터베이스를 보호하는 것이다. 딱히 중요한 내용은 아니다. 권한 관리를 통한 보안은 접근이 허락된 사용자만 권한 내에서 데이터베이스를 사용하도록 보호한다. 계정이 발급된 사용자만 데이터베이스에 접근할 수 있도록 통제하고, 사용자별로 사용 범위와 수행 가능한 작업 내용을 제한한다. 운영 관리를 통한 보안은 접근이 허락된 사용자가.. Database/Database 기초 2021. 11. 15. 이전 1 ··· 23 24 25 26 27 28 29 다음 반응형