분류 전체보기
-
[EOST 2023] ETRI Open Source Tech Day 에 참여하다!🗣️ IT사담 2023. 10. 14. 20:21
10월 11일 수요일, 과학기술정보통신부에서 주회한 ETRI 오픈소스 테크데이에 참여했습니다. 프로그램 일정은 다음과 같습니다. EOST2023 EOST2023 eost2023.homepage.whois.co.kr 저는 이중에서 핸즈온 강연인 "오픈소스 LLM & 생성형 AI 알아보고 실습하기" 에 참여하고, 남은 시간 동안은 패널토의 - "오픈소스가 만드는 LLM의 미래는?" - 를 듣기도 했습니다. 오픈소스 LLM & 생성형 AI 알아보고 실습하기 사실 저는 AI 쪽 진로가 아니고,그래서 사전지식도 거의 없지만 이번 기회에 "Learning by Doing" 을 하고자 사전 신청을 했습니다. 실습에 앞서 Large Model Language 의 역사 및 간략한 내용 설명을 들었습니다. 2017년 구글..
-
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 은 처음이라 떨리는 마음으로 갔습니다. ㅎㅎ; 한기용 연사님과 이보라 연사님의 연설을 들을 수 있었던 뜻깊은 시간이었습니다^^ 먼저, 한기용 연사님! 커리어의 전반부에는 해보고 싶은 것 많이 해보고, 후반부부터는 잘하는 것을 파고들면 될 것 같다. 내가 가고 싶어하는 길, 호기심, 열정을 따라가세요. 커리어 초반의 실패는 실패가 아니다. 창업..