분류 전체보기
-
SOLID Principles학교생활/소프트웨어디자인패턴 2023. 10. 13. 11:39
102 - 8. SRP 단일 책임 원칙 SRP(Single Responsibility Principle) 에서 책임(Responsibility) 는 바로 변경에 대한 책임이다! 따라서 클래스를 변경할 때 클래스를 변경하는 이유가 하나만 존재하도록 해야한다. SRP 는 모듈이나 클래스의 변경을 야기하는 응집력과 같은 개념이다. 만약 한 클래스가 하나 이상의 책임을 맡는다면(low cohesion), 한 책임에 대한 변경은 다른 책임을 충족시키는 클래스의 능력을 떨어뜨리거나 저하 시킬 수 있다. 이런 종류의 결합은 변경을 했을 때 예상치 못한 방식으로 잘못 동작하는 취약한 설계를 유발한다. 클래스나 모듈 내에서 비슷한 개념들의 관계는 tight 해야한다. SRP 를 준수해서 변경을 하면 응집도가 높아진다. ..
-
Agile Design학교생활/소프트웨어디자인패턴 2023. 10. 5. 10:25
94 - 7. Agile Team 은 처음 모듈을 설계할 때 변경될 사항을 예상하지 않고 가장 간단한 방법으로 설계한다. 나중에 변경될 요구사항에 대해서는 추가적인 처리를 지금 하지 않는다. 과도한 설계는 오히려 '불필요한 복잡성'을 초래한다. 요구사항이 변경된 다음에야 비로소 탄력적일 수 있도록 모듈의 설계를 바꾼다. 소프트웨어 개발자들은 항상 요구사항의 변화가 있을 수 있다는 것을 염두하여야 한다. Agile 의 설계는 과정에서 일어나는 것이다. 그리고 이것은 시스템의 설계를 간단하고 명료하게 유지하려는 노력이다. 이러한 노력은 어쩌다 한번 이 아닌, 꾸준한 노력이다. 악취를 맡으면 부패되지 않도록, 내버려두지 않는다. 모듈을 탄력적이게 하는 방법으로는 어떤 것이 있을까 추상화는 일반화를 통해 추상클..
-
Overview of XP with Planning, Testing and Refactoring학교생활/소프트웨어디자인패턴 2023. 9. 21. 20:12
익스트림 프로그래밍(영어: eXtreme Programming, XP)는 소프트웨어 개발 방법이다. 이는 비즈니스 상의 요구가 시시각각 변동이 심한 경우에 적합한 개발 방법이다. 애자일 개발 프로세스라 불리는 개발 방법 중의 대표적인 하나로 꼽힌다. 10~12개 정도의 구체적인 실천 방법(Practice)을 정의하고 있어, 비교적 적은 규모의 인원의 개발 프로젝트에 적용하기 좋다. 개발 문서 보다는 소스코드를, 조직적인 개발의 움직임 보다는 개개인의 책임과 용기에 중점을 두는 경향이 크다. XP의 목적은 '고객이 원하는 양질의 소프트웨어를 빠른 시간안에 전달하는 것'이다. 수시로 발생하는 고객의 요구사항에 대처하고, 고객이 원하는 SW를 고객이 원하는 시간에 인도하기 위해서는 고객과 팀원간의 대화를 통해..
-
Software Quality with OOP Concepts학교생활/소프트웨어디자인패턴 2023. 9. 15. 00:06
추상화는 객체들의 공통적인 특징을 뽑아내는 것이다. 객체들의 공통적인 데이터와 기능을 도출해서 추상클래스나 인터페이를 정의한다. Interface(자바에서 ADT)는 미래에 예측할 수 없는 것까지 미리 만들어둬서 flexible 하게 만들 수 있다. 다이나믹하게. maintainability(유지보수성)와 extensibility(기능의 확장성)가 가능하다. 상속은 견고한 연결이다. (Strong Coupling) subclass 는 superclass 구현에 직접적으로든 간접적으로든 영향을 받는다. 기반 클래스의 변화가 모든 파생 클래스에 영향을 주기 때문에, 예상치 못한 요구사항의 대처에 유연하게 대처하지 못한다. 의존성이 강함.
-
Software Quality Models and Philosophies학교생활/소프트웨어디자인패턴 2023. 9. 7. 16:19
다양한 퀄리티 모델 개론 1. 학습 목표 SW 퀄리티와 퀄리티 모델에 대한 의논해본다. '퀄리티' 란 무엇인지 정의한다. 2. 퀄리티란 정의는 크게 두 분류로 나뉜다. 1) Conformance to specification 사양의 적합성 - 사전에 정의한 사양/규정요건을 충족한가? 2) Meeting customer needs 고객 만족도 충족성 - 고객의 합리적이고 구체적인 요구사항을 충족하는가? 예) 레스토랑에 간 상황 [1] 1) 사양의 적합성 - '돈을 좀 아낄 건데..' 이 요구를 충족시킬 음식이었나? 2) 고객 만족도 충족성 - 음식은 맛있었나? 웨이터는 좋은 서비스를 제공했나? 음식은 돈값(혹은 그 이상)을 하는가? 주차공간은 충분했나? 3. 학자들의 의견 3.1. Philip B. Cro..
-
[Java] Overriding, Overloading📚 개발백과 2023. 8. 21. 00:34
스프링 핵심 원리-기본편 섹션1 보충 - 다형성 이해를 위한 오버라이딩 복습(+ 오버로딩) ✅ 오버라이딩 Overriding자바에는 상속이라는 -기본의 클래스를 재사용해 새로운 클래스를 만드는- 개념이 있습니다.상속을 받아 그대로 쓸 수도 있지만,부모 클래스를 상속받아 자식 클래스가 부모 클래스의 메소드를 오버라이딩하여 자식 클래스가 본인에게 맞게 변경하여 사용할 때도 있습니다. 오버라이딩은 메소드의 내용을 자신에게 맞게 재설정하는 것이기 때문에자식 클래스에서 오버라이딩하는 메소드는 부모 클래스의 메소드와 이름/매개변수/반환타입이 같아야 합니다.이외에도 '부모의 접근제어자이하 범위만 사용가능', '부모보다 넓은 범위의 expection 사용불가' 등의 조건이 있는데,김영한님께서 말씀하신대로 '부모는 마음..
-
[WWCS Tech Lounge] IT 여성의 글로벌 커리어를 위한 meetup에 참가하다!🗣️ IT사담 2023. 6. 14. 00:08
[WWCS Tech Lounge] IT 여성의 글로벌 커리어 w/ 한기용 CTO & 이보라 엔지니어 - 이벤터스 국내외 IT 기업에서 10년 이상의 커리어를 이어오고 있는 업계 선배와 멘토를 만나 기술, 경험, 노하우를 공유해보세요. event-us.kr WWCS (Women Who Code Seoul) 에서 열린 테크라운지에 참가했습니다. 이런 개발자 meetup 은 처음이라 떨리는 마음으로 갔습니다. ㅎㅎ; 한기용 연사님과 이보라 연사님의 연설을 들을 수 있었던 뜻깊은 시간이었습니다^^ 먼저, 한기용 연사님! 커리어의 전반부에는 해보고 싶은 것 많이 해보고, 후반부부터는 잘하는 것을 파고들면 될 것 같다. 내가 가고 싶어하는 길, 호기심, 열정을 따라가세요. 커리어 초반의 실패는 실패가 아니다. 창업..
-
OKKY 노상범 대표님의 진로특강🗣️ IT사담 2023. 6. 13. 23:16
OKKY 의 대표이시자 헤드헌터이신 노상범 대표님으로 부터 업계 상황과 진로를 설정할 때 고려해야할 여러가지 이야기를 들었습니다. 헤드헌터이시기에 recuiting 에 대한 느낌을 파악할 수 있고, 저같은 주니어-엔트리 개발자들은 어떤 자세를 갖추어야 하는지 등 중요한 이야기를 들을 수 있어 뜻깊은 시간이었습니다. 자리를 마련해주신 이민석 교수님께도 감사의 말씀을 드리고 싶습니다. 다음은 진로특강을 들으며 정리한 내용입니다. "개발자" 라는 직업하에 다양한 분야의 사람들이 있습니다. Software is eating up the world 에서 Software is the world 가 되어가는 세상입니다. 네카라쿠배당토 뿐만아니라 다양한 기업에서 개발자를 필요로 합니다. 알파고의 등장 쯔음부터 개발자들..