목록Computer (251)
Machineboy空
소프트웨어 시스템의 아키텍처란 시스템을 구축했던 사람들이 만들어낸 시스템의 형태다. 그 모양은 시스템을 컴포넌트로 분할하는 방법, 분할된 컴포넌트를 배치하는 방법, 컴포넌트가 서로 의사소통하는 방식에 따라 정해진다. 그리고 그 형태는 아키텍처 안에 담긴 소프트웨어 시스템이 쉽게 개발, 배포, 운영, 유지보수되도록 만들어진다. 이러한 일을 용이하게 만들기 위해서는 가능한 한 많은 선택지를, 가능한 한 오래 남겨두는 전략을 따라야 한다. 아키텍처가 시스템 운영에 미치는 영향은 개발, 배포, 유지보수에 미치는 영향보다는 덜 극적이다. 운영에서 겪는 대다수의 어려움은 소프트웨어 아키텍처에는 극적인 영향을 주지 않고도 안순히 하드웨어를 더 투입해서 해결할 수 있따. 실제로 우리는 이러한 일이 벌어지는 경우를 계속..
SOLID 원칙의 목적은 중간 수준의 소프트웨어 구조가 아래와 같도록 만드는 데 있다.변경에 유연하다.이해하기 쉽다많은 소프트웨어 시스템에 사용될 수 있는 컴포넌트의 기반이 된다. SRP(Single Responsibility Principle) : 단일 책임 원칙OPC(Open-Closed Principle) : 개방폐쇄원칙LSP(Liskov Substitution Principle) : 리스코프 치환 원칙ISP(Interface Segregation Principle) : 인터페이스 분리 원칙DIP(Dependency Inversion Principle) : 의존성 역전의 원칙SRP(Single Responsibility Principle) : 단일 책임 원칙 하나의 모듈은 하나의, 오직 하나의 액터..
4장. 구조적 프로그래밍 발췌 이러한 제어 구조는 뵘과 야코피니가 데이크스트라보다 2년 앞서 발견했는데, 이 두 명은 모든 프로그램을 순차(sequence), 분기(selection), 반복(iteration)이라는 세 가지 구조만으로 표현할 수 있다는 사실을 증명했다. 이 발견은 실로 놀라웠다. 즉 , 모듈을 증명 가능하게 하는 바로 그 제어 구조가 모든 프로그램을 만들 수 있는 제어 구조의 최소 집합과 동일하다는 사실이었다. 데이크 스트라는 편집자에게 편지를 썼고, 편지의 제목은 "goto문의 해로움(Go To Statement Considered Harmful)"이었다. 구조적 프로그래밍을 통해 모듈을 증명 가능한 더 작은 단위로 재귀적으로 분해할 수 있게 되었고, 이는 결국 모듈을 기능적으로 분..
1장 설계와 아키텍처란? 제이슨 고먼의 실험 정수를 로마 숫자로 변환하는 프로그램사전에 정의한 일련의 인수테스트를 프로그램이 통과하면 개발이 완료된 것으로 봤다. 1일차,3일차, 5일차에 TDD(테스트 주도개발)을 적용하고,2일차,4일차, 6일차에는 TDD없이 개발했다. TDD를 적용한 날이적용하지 않은 날보다 대략 10% 빠르게 작업이 완성되었다. 빨리 가는 유일한 방법은 제대로 가는 것이다.2장 두 가지 가치에 대한 이야기 소프트웨어가 가진 본연의 목적을 추구하려면 소프트웨어는 반드시 부드러워야(soft) 한다. 다시 말해 변경하기 쉬워야 한다. 이해관계자가 기능에 대한 생각을 바꾸면, 이러한 변경사항을 간단하고 쉽게 적용할 수 있어야 한다. 이러한 변경사항을 적용하는 데 드는 어려움은 변경되는 범..
문제요약홀수번 등장하는 수를 출력하라 https://www.codewars.com/kata/54da5a58ea159efa38000836/solutions/csharp Codewars - Achieve mastery through coding practice and developer mentorshipA coding practice website for all programming levels – Join a community of over 3 million developers and improve your coding skills in over 55 programming languages!www.codewars.com난이도6kyu풀이 포인트딕셔너리XOR연산LINQREVIEW 너무나 정직하게 딕셔너리로 풀..
문제요약key-value쌍으로 되어있는 명단에 대한 쿼리callleavejoin난이도Rank B풀이 포인트Dictionary ,PairREVIEW 순간 Dictionary가 키와 밸류로 이루어진 여러 쌍을 포함할 수 있다는 것을 간과해서, C++의 pair와 헷갈려 Dictionary의 List를 만들어 버려 시간 초과가 났다.Dictionary students = new Dictionary { { 101, "Alice" }, { 102, "Bob" }, { 103, "Charlie" } }; CODEusing System;using System.Collections.Generic;class Program{ stat..
https://qiita.com/Nakamura-Kaito/items/4e7afebd5db79a43862d プログラマー必携!2025年バイブコーディング(vibe coding)ツール完全ガイド - Qiitaはじめにこんにちは、Kaitoです。最近のAIコーディングツールの進化は本当に目覚ましいですよね。私自身、日々の開発作業でこれらのツールに助けられていて、正直「これなしの開発」に戻qiita.comCursorApidog MCP ServerContinueGrok Studio + WindsurfClineLazy AI目覚ましい(めざましい)最近のAIコーディングツールの進化は本当に目覚ましいですよね 補完(ほかん)単純なコード補完 犠牲(ぎせい) 迅速(じんそく)品質を犠牲にすることなく迅速に開発できるツールを求めているんだよね。 自律的(じりつてき) ..
문제요약https://paiza.jp/works/mondai/class_primer/class_primer__heros/edit?language_uid=c-sharp ログインログイン画面です。|ITエンジニア・プログラマ向け総合求職・学習サイト【paiza】paiza.jp雇う(やとう)고용하다 난이도B rank풀이 포인트class와 struct 차이REVIEW struct로 풀면서 원본에 참조가 되지 않는 것이 문제라는 것을 깨달아 class로 바꾸었더니 해결 CODEusing System;class Hero{ public int level, hp, attack, defence, speed, clever, fortune; public Hero(int level, int hp, int attack, in..