다음 내용은 인프런의 "데브옵스를 위한 쿠버네티스 마스터" 라는 강의를 보고 요약한 공부노트입니다. 설명이 너무 잘되어 있어 개발자라면 한번쯤 들어봐야한다고 생각합니다. 1. 마이크로서비스(Micro Service Architecture)의 이해 모놀리식 아키텍쳐(전통적인 아키텍쳐 방법)이란? - 서비스가 하나의 애플리케이션으로 돌아가는 구조 - 하나의 서비스 또는 어플리케이션이 하나의 거대한 아키텍쳐 -> 많은 회사들이 사용하던 방법 장점 단점 - 소규모 프로젝트에서는 합리적 - 개발, 빌드, 테스트가 용이 - 종속적인 라이브러리 충돌 - 조금만 수정해도 전체 빌드 및 배포 필요 - 일부분으 오류가 전체에 영향을 미침 마이크로서비스 패턴으로 바뀌는 추세로 가고 있음 - 각각의 기능을 분리하여 개발, 관..
DevOps란? - 개발팀과 운영팀이 단일팀으로 병하바되어 엔지니어가 개발에서 테스트, 배포, 운영에 이르기까지 전체 애플리케이션 수명주기에 걸쳐 작업하고 단일 기능에 한정되지 않은 광범위한 기술을 개발하는 것 - 소프트웨어 개발 방법론의 하나 - 개발(development)과 운영(operation)을 결합한 혼성어 - 2008년 애자일 컨퍼런스에서 앤드루 클레이 쉐이퍼(Andrew Clay Shafer)와 패트릭 드부와(Patrick Debois)가 "애자일 인프라스트럭처"에 대해 논의하며 처음으로 사용 - 셰프(Chef)나 퍼펫(Puppet)과 같은 인프라 구성관리 자동화 툴을 사용 애자일 소프트웨어(agile software) 개발과 지속적 통합(continuous integration) 애자일 ..
소프트웨어 아키텍쳐란? 구성요소들 사이에서 유기적 관계를 표현하고 소프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙 소프트웨어 아키텍쳐는 주로 서버를 중심으로 동작되는 소프트웨어들의 논리적 형상에 대한 구조를 설명 cf 시스템 아키텍쳐? 서버, 네트웍크 장비들을 포괄한 인프라의 물리적 형상의 "구조" Azure 서비스 유형? Virtual Machines Cloud Services App Services Service Fabric 서비스 분배 - Centralized / Decentralized / Distributed 방식 서비스 연계 방식 세션 처리 - 클라우드 분산 시스템구축을 위해 Stateless하게 설계 필요, 세션정보 최소화하고 요청시마다 담아 설계필요 - 로드밸런서로 관리할때 세션의 정..
(1) Locking으로 공유 리소스에 대한 접근을 제한하는 방식 -> lock, Monitor, Mutex, Semaphore, SpinLock, ReaderWriterLock (2) 타 쓰레드에 신호(Signal)을 보내 쓰레드 흐름을 제어 -> AutoResetEvent, ManualResetEvent, CountdownEvent 등 Thread AutoResetEvent Thread ManualResetEvent Thread CountdownEvent
Thread - Main Threading ? 여러 코어에서 한번에 여러개의 스레드를 처리하는 CPU 성능을 활용하는 프로그래밍의 유형 - 한번에 하나가 아니라 동시에 여러개 작업을 실행 Thread 포그라운드(Foreground) && 백그라운드(Background) ? .NET에서 관리되는 쓰레드는 백그라운드, 포그라운드 스레드 백그라운드 스레드는 관리되는 실행환경을 계속 실행하지 않음 백그라운드 스레드는 기본(default)로 false값을 가지고 있으며 fasle로 설정시 메인함수에 끝나는것없이 계속 실행되지만 true로 설정시 main함수가 끝나면 자동으로 thread가 종료된다. Join 메서드는 Thread클래스의 인스턴스를 생성하고, 생성자 파라미터로는 반환값과 반환값이 없는 Delegat..
ALTER TABLE dbo.Department ADD DepartmentCode VARCHAR(20) NULL; 데이터 베이스 생성 CREATE DATABASE EmployeeDB; CREATE TABLE dbo.Department( DepartmentId INT IDENTITY(1,1), DepartmentName VARCHAR(500) ) SELECT * FROM dbo.Department INSERT INTO dbo.Department values('IT') INSERT INTO dbo.Department values('Support'); CREATE TABLE dbo.Employee( EmployeeId INT IDENTITY(1,1), EmployeeName VARCHAR(500), Depar..
Adding Back the Startup Class to ASP.NET Core 6 https://www.youtube.com/watch?v=cuOKV_0b-JI Project Name: WebAPI Program.cs using WebAPI; var app = Startup.InitializeApp(args); app.Run(); Startup.cs namespace WebAPI { public static class Startup { public static WebApplication InitializeApp(string [] args) { var builder = WebApplication.CreateBuilder(args); ConfigureServices(builder); var app = b..
client와 서버 만들기 Client를 실행하려면 Nuget에서 설정하는것이 필요 Microsoft.AspNet.WebApi.Client ProductController로 만든다고 가정하면 주소는 localhost:7130/api/Product/... 로 진행되어진다. ApiController이란? ApiController특성을 Controller 클래스 상단에 적용하여 API 관련 동작을 사용할 수 있다. (1) Case1 : action만 있을때? - localhost:7130/GetProductList - [action]은 함수의 이름을 뜻한다. [ApiController] [Route("[action]")] public class ProductController : Controller { [Ht..
static이란? 정지상태, 고정된, 변화가 없는 클래스가 로딩될때 static 선언된 자원들은 JVM(Java Virtual Machine) 에서 메모리에 딱 한번 올라감 (= 즉 Static 변수는 클래스가 사용되기 전 미리 메모리에 올라감) static을 사용하면 객체 생성할 필요없이 공용된 자원을 사용함으로써 메모리를 효율적으로 사용할 수 있지만 무분별한 사용은 프로그램에 악영향을 미침 왜 main 앞에 static이 붙여질까? - 프로그램이 실행될때 인스턴스를 생성하지 않고 바로 실행되어야 하기 때문에 static이 붙는다. class Test { public static void main (String[] args) { System.out.println("실행") } } Static 장단점 1..
하... 몇개 언어를 해야하는건지 Arrays(배열) 배열 데이터 구조에 형식이 동일한 변수를 여러 개 저장 동적으로 할당이 불가 연속된 메모리 공간으로 이루어져 있기 때문에 관리가 용이하고, Index로 이루어져 있기 때문에 빠르게 해당값을 찾을 수 있음 요소의 형식을 지정하여 배열을 선언 숫자 배열 요소의 기본값은 0으로 설정되고, 참조 요소는 null로 설정 기본배열 int[] array1 = new int[5]; int[,] multiDimensionalArray1 = new int[2, 3]; 다차원배열 int[][] jaggedArray = new int[3][]; jaggedArray[0] = new int[] { 1, 3, 5, 7, 9 }; jaggedArray[1] = new int[]..