전체 글
-
Stream프로그래밍 기초 공부 2023. 2. 2. 17:58
Stream 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미 운영체제에 의해 생성되는 가상의 연결고리를 의미 중간 매개자 역할 Stream 특징 데이터를 담는 저장소는 아님 데이터를 변경하지 않음 재사용 불가 각 요소가 한 번씩 처리됨 무제한으로 사용될 수 있음 Stream 종류 입출력 Stream Stream은 한 방향으로만 통신할 수 있음 입력과 출력을 동시에 처리 불가 사용 목적에 따라 입력 Stream과 출력 Stream으로 구분 바이트 기반 Stream 자바에서 Stream은 기본적으로 바이트 단위로 데이터를 전송 보조 Stream 자바에서 제공하는 보조 Stream은 실제로 데이터를 주고 받지 않음 다른 Stream의 기능을 향상시키거나 새로운 기능을 추가해 줌 문자 기반 Stre..
-
스크럼이란?프로그래밍 기초 공부 2023. 1. 25. 02:12
스크럼 (Scrum) 팀이 협업하고 영향력이 큰 업무를 수행하는 데 도움이 되는 애자일 프레임워크 복잡한 제품을 개발, 배포하고 유지하기 위함 스크럼 프레임워크는 팀이 반복과 지속적인 개선에 집중할 수 있도록 가치, 역할, 지침의 청사진을 제공 스크럼의 역사 1986년 Hirotaka Takeuchi와 Ikujiro Nonaka가 기고한 Harvard Business 리뷰 기사 The New Product Development Game에서 처음 소개 럭비에서 스크럼이라는 이름을 따옴 "럭비에서와 같이 팀에서 공을 패스하고 이를 단위로 필드 위를 이동하는 것" 이라고 설명함 1995년 Ken Schwaber와 Jeff Sutherland가 애자일 선언문 및 스크럼 개발 프로세스를 출가, 더욱 체계적으로 정..
-
iBatis와 MyBatis프로그래밍 기초 공부 2023. 1. 24. 17:31
ibatis ORM 프레임워크 객체와 DB 테이블간의 관계를 매핑시켜 효율적으로 데이터를 처리할 수 있는 기능을 제공 복잡한 객체 매핑을 지원하며, 한 줄의 JDBC 코드 없이 SQL문장을 처리 가능 역사 2001년 클린턴 비긴에 의해 iBatis 프로젝트가 처음 시작 암호화 소프트웨어 솔루션 개발에 중점 iBatis는 Secrets를 첫 출시 Secrets : 자바로 작성, 오픈소스 라이선스로 배포 2002년 7월 iBatis 1.0 공개 2004년 6월 iBatis 2.0 출시 2010년 5월 iBatis 3.0 공개 2010년 6월 iBatis 팀 Apahce Software Foundation에서 Google code로 이전 iBatis에서 MyBatis로 명칭 변경 특징 간결함과 쉬운 접근성 여..
-
애자일과 워터폴프로그래밍 기초 공부 2023. 1. 19. 00:46
애자일 (Agile) 신속한 반복 작업을 통해 가동 가능한 소프트웨어를 개발하여 지속적으로 제공하기 위한 소프트웨어 개발 방식 협업과 work flow를 보는 하나의 관점 무엇을 어떻게 만들지에 관한 선택지를 주는 가치 체계 유연하게 일을 진행하고, 변화에 잘 대응하기 위함 주요 특성 4가지 개인과 개인 간의 상호작용이 프로세스 및 툴보다 우선 작동하는 소프트웨어가 포괄적인 문서보다 우선 고객과의 협업이 계약 협상보다 우선 변화에 대응하는 것이 계획을 따르는 것보다 우선 애자일의 핵심 가치 협력 SW를 개발한 사람들 안에서의 협력을 말한다. 특히, 직무 역할을 넘어선 협력을 의미 좋은경험이나 통찰을 공유함으로써 팀 전체적인 발전이 이루어지고 혼자 생각하지 못한 기회나 방법을 생각해낼 수 있음 안좋은 일을..
-
Race Conditions, Deadlocks, Process Starvation프로그래밍 기초 공부 2023. 1. 16. 17:03
Race Condition (경쟁 상태) 두 개 이상의 프로세스가 공통 자원을 병행적으로 읽거나 쓸 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고 달라지는 상황 두 개의 스레드가 하나의 자원을 놓고 서로 사용하려고 경쟁하는 상황을 말함 Critical Section (임계 영역) 운영체제에서 여러 프로세스가 데이터를 공유하면서 수행될 때 각 프로세스에서 공유 자원에 접근하는 프로그래밍 코드 부분을 의미 프로세스간에 공유자원을 접근하는데 있어서 문제가 발생하지 않도록 공유 자원의 독점을 보장해주어야 하는 영역 임계 영역 문제을 해결하기 위한 3가지 조건 Mutual Exclusion (상호 배제) 한 프로세스가 자신의 임계 영역이면 다른 프로세스들은 임계영..
-
그래프와 트리프로그래밍 기초 공부 2023. 1. 10. 15:59
그래프 노드와 노드 간을 연결하는 간선으로 구성된 자료 구조 이를 통해 노드 간의 관계를 표현할 수 있음 그래프 특징 순환 혹은 비순환 구조를 이룸 방향이 있는 그래프와 방향이 없는 그래프가 존재 루트 노드의 개념이 없음 부모-자식 관계라는 개념이 없음 2개 이상의 경로가 가능 네트워크 모델 그래프 역사 1800년대 오일러에 의하여 창안 오일러 문제 모든 다리를 한번만 건너서 처음 출발했던 장소로 돌아오는 문제 그래프의 용어 그래프 G는 (V,E)로 표시 정점(vertices) : 여러가지 특성을 가질 수 있는 객체를 의미 V(G) : 그래프 G의 정점들의 집합 노드라고도 함 간선(edge) : 정점들 간의 관계를 의미 E(G) : 그래프 G의 간선들의 집합 링크라고도 함 인접 정점(adjacent ve..
-
slf4j란?프로그래밍 기초 공부 2023. 1. 10. 01:00
로깅 어플리케이션을 운영하던 도중에 장애가 발생, 잘못된 접근, 예상치 못한 작동 등과 같이 문제가 발생 -> 문제의 원인을 파악해야 함 -> 날짜, 시간, 서비스, 로직 등에 대한 정보가 필요 -> 이런 정보를 얻기 위해서 Exception이 발생하거나 중요한 기능들이 실행되는 부분에서는 로그(log)를 남기는 것 slf4j Simple Logging Facade for java의 약자 java.util.logging, logback, log4j와 같은 다양한 로깅 프레임 워크에 대한 추상화 역할을 하는 라이브러리 로깅을 간단하게 사용할 수 있도록 하는 Facade 로깅 라이브러리들을 하나의 통일된 방식으로 사용할 수 있는 방법 추상 로깅 프레임워크이기에 단독 사용은 하지 않음 compile시 하나의 ..
-
정규화란?프로그래밍 기초 공부 2023. 1. 3. 23:38
이상현상 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 수행할 때 발생할 수 있는 부작용 삽입이상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야하는 문제 갱신이상 : 중복 투플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제 삭제이상 : 투플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제 정규화 함수 종속성을 이용해 릴레이션을 연관성이 있는 속성들로만 구성되도록 분해, 이상 현상이 발생하지 않는 올바른 릴레이션으로 만들어 가는 과정 주의사항 정규화를 통해 릴레이션은 무손실 분해 되어야 함 릴레이션이 의미상 동등한 릴레이션으로 분해되고, 정보 손실이 발생하지 않아야 함 분해된 릴레이션들을 자연 조인하면 분해 전의 릴레이션으로 복..