CS 20

[소프트웨어 공학] 5-1. 객체 지향

INTROPermalink뒤에서 나올 모델링에 대한 내용을 알기 위해 필요한 객체지향.공통 구조와 동작을 추상화 시키는게 정적 모델링인데, 그걸 하나의 클래스로 표현하기 때문에 이 개념이 중요하다고 한다.객체가 무엇인지, 어떤 연관관계 집합, 상속 다양성 관계가 있는지에 대한 이해가 필요하다.교수님 말씀대로라면 그걸 왜 하는지에 대한 이해가 특히 필요하며 여태까지 객체지향에서 배운 것은 그런걸 할 수 있다는 것이지 어느 상황에서 어떻게 효과적으로 쓸지에 대해 잘 모른다고 하셨다.이제 알아보자.객체지향Permalink객체, 클래스Permalink객체를 인스턴스라고 생각하면 된다.클래스라는 설계도로 만들어진 (실존하는) 객체.캡슐화Permalink정보 은닉은 보안이 핵심이라기 보다는 알 필요가 없는 정보를 ..

[소프트웨어 공학] 4. 요구 분석

요구Permalink요구 추출Permalink고객 발표문헌, 양식 조사인터뷰설문브레인스토밍 회의프로토타입핑관찰이런 많은 방법을 통해 요구사항을 추출해야한다.교수님은 인터뷰가 가장 좋다고 하신다.요구 분석Permalink도출한 요구 후보들을 분석하고 결정해서 요구로 확장하는 단계이다.요구 품질Permalink요구 후보들의 품질을 평가한다.도메인 분석Permalink도메인은 요구의 배경을 뜻한다.소프트웨어를 구축할때 문제가 무엇인지를 이해해야 하고 문제를 해결하기 위해 문제가 어디에 놓여있는가를 이해하는 단계이다.시나리오 기반 분석Permalink5W 1H로 시나리오를 표현하면 효과적이라고 하는데 이는 When, Where, Who, What, Why, How를 의미한다.UseCase (유스케이스)Perma..

[소프트웨어 공학] 3. 프로젝트 계획과 관리

INTROPermalink여러가지 자원, 인력, 비용, 재료, 기술을 효과적으로 사용해 프로젝트 목표를 달성하는 것.핵심은 시간표를 잘 짜라.스스로 추적 관리를 해라.스타트업에 몸담고 있는 교수님의 말씀은 교재 보다는 현장에서 몸으로 느끼는 것이 중요하다고 한다.실질적으로 학생 입장에서는 이걸 체험해 보기 어렵다고 하시면서 프로젝트를 할때 꼭 규모를 키워서 진행해 보라고 하셨다.그런 의미에서 지금 하고 있는 졸업 프로젝트, 창업 동아리가 많은 도움이 되는 것 같다.이 내용은 다른 글에서 정리해 보겠다.WBS (Work Breakdown Structure)Permalink개발 팀이 프로젝트 목표를 달성하고 결과물을 산출하기 위하여 수행하여야 할 작업을 계층적으로 분할한 것스케줄링PermalinkWBS를 기..

[기계학습 심화] Neural Network

Neural NetworkPermalink인간 뇌의 neuron 구조를 모방한 네트워크 구조를 Neural Network라고 한다.Training, InferencePermalink진행 방식은 다음과 같다.Training수많은 데이터를 순방향 전파 (forward propagation)를 통해 신경망을 거쳐가고 Loss Function을 통해 에러율을 판단한다.그 에러율을 줄이기 위해 역방향 전파 (backward propagation)로 다시 신경망을 반대로 지나가면서 각 신경망의 Weight들을 바꾼다.Inference모델이 원하는 작업을 수행해 주는 것이다.쉽게 말해 예측하는 작업! 당연히 학습된 모델이기 때문에 추론 과정에서는 순방향 전파만 일어난다.https://manchann.tistory.c..

[기계학습 심화] Linear Classification review

Linear ClassificationPermalink살짝 복습으로우리는 예측값을 구하기 위해 함수를 찾으려는 것이고,Linear에서는 W, b를 찾는 것이 목적이다.최적의 W, b를 찾기 위해 Loss 개념을 사용해train data에서 가장 실제값을 잘 표현하는 W, b를 찾는 것이다.부가적으로 직접 설정해야 하는 hyper parameter 값을 잘 설정하기 위해서는 validation data를 사용Loss FunctionPermalinkLoss Function - L1 LossPermalink정답이 1일때 예측값이 1이면 에러가 0간단하다.Loss Function - L2 LossPermalink이것도 간단하다 L1에서 제곱Loss Function - Cross Entropy LossPermal..

[기계학습 심화] PCA

Supervised Learning vs Unsupervised LearningPermalinkSupervised Learning: 지도 학습데이터에 레이블이 붙어 있음예측 문제 (Regression, Classification)예시: Linear Regression, SVM, KNNUnsupervised Learning: 비지도 학습데이터에 레이블이 없음군집화 문제 (Clustering)예시: K-Means, PCAPCA (Principal Component Analysis)PermalinkUnsupervised Learning 기법으로머신러닝, 딥러닝 할때 데이터 크기 (차원)이 너무 크다는 문제점을 해결하기 위해 사용하는 것이다.쉽게 말해 축 (basis vector)를 바꿔서차원을 줄이는 방법이다..

[소프트웨어 공학] 2. 프로세스와 방법론

프로세스소프트웨어 공학에서 프로세스란소프트웨어 시스템을 구축하기 위해 수행되는 작업의 집합을 의미즉 프로젝트에서 수행해야 하는 작업과 수행 순서를 정의한 명세를 의미한다.프로세스 모델프로세스 모델이란일반적인 프로세스를 추상적으로 기술한 것. (작업 흐름)작업의 단계와 순서, 각 단계 작업 수행의 제약사항이나 조건을 모아 놓은 것프로세스 (명세), 프로세스 모델 차이점프로세스 정의Permalink프로세스를 명확하게 설명하기 위해서는 3가지를 정의 해야 한다목적작업 방법성과전통적인 모델Permalink폭포수 모델Permalink가장 오래되고 널리 사용된 프로세스 모델계획 단계 -> 운영 -> 유지보수 모두 순서대로 진행각 프로세스 사이에 결과물이 있어 명확히 구분, 이전 작업으로 돌아가는 재작업 없다결과는 ..

[블록체인] Lightning Network(2) - Invocies

Alice가 Dina의 팬이어서 donation이 하고 싶다. 이건 계속해서 하는 거래가 아니라 일회성이다. 이럴때 Lightning Network을 사용할 수 있는 방법이 있다. Announcing the ChannelAlice가 Dina에게 돈을 보내기 위해 최소한 Bob, Chan의 존재를 알고 있어야 하고그러기 위해 Bob, Chan이 channel을 announce 하는 것이다.즉 Dina에게 가는 경로를 제공하고 수수료를 받는다.단, unAnnounced channel이 있을 수 있다.이러면 존재를 알고 있는 node만 이용할 수 있을 것이다.이때 announce 하는 방법으로 gossip protocol을 사용한다. (모든 node가 서로의 정보를 공유하는 방법)단, 경로는 Alice가 찾아..

CS/BlockChain 2025.06.06

[블록체인] Lightning Network(1)

LN IntroductionLN은 2nd layer protocol이다. (그 자체가 P2P network)블록체인이 가장 밑에 깔려있다면 bitcoin block chain을 이용해 새로운 서비스를 제공하는 것이 lightning network.등장배경은 예시로 살펴보자.Alice가 Bob의 커피가게에서 커피를 사는데 bitcoin으로 pay 하고 싶다.Alice 입장에서는 수수료가 부담될 것이다. (커피값 절반이 될수도 있다)Bob 입장에서는 Alice의 transaction이 confirm되는데 최소 10분은 걸릴텐데, 그 시간을 기다리라 하는 것은 무리가 있다.이 문제점을 해결하기 위해 LN이 등장했다.두 사람이 앞으로 계속 거래 하기로 약속하고 fund를 들어 놓는 방식이다.(미용실이나 피씨방 ..

CS/BlockChain 2025.06.06