10. 개발환경 구축 - 1과목 소프트웨어 구축
서버환경을 구축하는 것에 대한 내용을 다루는 파트가 개발환경 구축입니다. 이러한 구축 환경을 그림으로 그리면 시스템 아키텍처가 됩니다.
WAS는 여러대를 두고 L4로 로드밸러싱을 받고 DBMS의 정보를 동적으로 뿌려주는 역할을 하며, webserver는 정적인 정보를 출력하게 됩니다. 이러한 내용들을 이해하기 위한 파트입니다. 중요한 내용은 형상관리에 대한 내용을 다루니 적어도 형상관리는 꼭 보고 가시길 바랍니다.
목차
서버 환경 구축
웹서버 (정적)
클라이언트에게 정적 파일 구축
주요기능
- 웹 서버는 클라이언트에게 정적인 콘텐츠를 제공하는 역할을 합니다. 이러한 콘텐츠는 주로 HTML, CSS, JavaScript, 이미지, 오디오 및 비디오 파일 등이 포함됩니다.
- 웹 서버의 주요 기능은 클라이언트의 요청에 따라 파일을 찾아서 전송하는 것입니다. 이는 주로 HTTP 프로토콜을 통해 이루어집니다.
- 대표적인 웹 서버 소프트웨어에는 Apache, Nginx, Microsoft IIS 등이 있습니다/
WAS (동적)
게시물등 DB에서 불러와서 뿌려주는 것
동적인 일을 함.
web서버 역할을 할 수 있음
weblogic, websphere, heus, tomcat에 대한 설명
- WAS는 동적인 콘텐츠를 처리하고 클라이언트 요청에 따라 데이터베이스나 다른 소스로부터 데이터를 검색하여 동적으로 생성된 콘텐츠를 제공합니다.
- 주로 웹 애플리케이션의 비즈니스 로직을 실행하고 데이터를 처리합니다.
- WAS는 웹 서버의 일부로 통합되어 동적 콘텐츠 요청을 처리하기도 합니다.
- 대표적인 WAS에는 Apache Tomcat, Red Hat JBoss, IBM WebSphere 등이 있습니다.
DBMS (데이터 베이스 서버)
- 데이터베이스 서버는 데이터를 저장, 관리 및 검색하기 위한 소프트웨어입니다. 관계형 데이터베이스 관리 시스템(RDBMS) 또는 NoSQL 데이터베이스 등 다양한 유형이 있습니다.
- 주요 기능은 데이터의 CRUD(Create, Read, Update, Delete) 작업을 지원하고, 데이터의 일관성, 무결성 및 보안을 보장합니다.
파일서버
- 파일 서버는 네트워크를 통해 파일을 저장하고 공유하는 서버입니다. 사용자가 파일에 접근하고 다운로드할 수 있도록 합니다.
- 주로 파일 공유 및 백업, 문서 관리 등에 사용됩니다.
Load Balancer
- 로드 밸런서는 트래픽을 여러 서버에 분산하여 서버 부하를 균형있게 분산하는 장치 또는 소프트웨어입니다.
- 주로 가용성과 성능 향상을 위해 사용되며, 서버의 부하를 고르게 분산하여 응답 시간을 개선하고 장애 발생 시에도 서비스를 계속할 수 있도록 합니다.
- 로드 밸런서에는 라운드 로빈, 최소 부하, 랜덤 등 다양한 분산 알고리즘이 있습니다
CDN(content delivery network)
대용량 콘텐츠를 빠르게 제공하기 위해 물리적으로 가까운 위치에 있는 서버 네트워크를 사용합니다.
*CDN 뿐만 아니라 호스팅도 서비스하는 지역에 하는 것이 유리합니다.
- CDN은 대용량 콘텐츠를 빠르게 제공하기 위해 전 세계에 분산된 서버 네트워크입니다.
- 주로 정적 콘텐츠(이미지, 비디오, CSS, JavaScript 등)의 배포 및 캐싱을 위해 사용되며, 사용자에게 더 빠른 로딩 시간과 높은 대역폭을 제공합니다.
- 물리적으로 사용자에 가까운 위치에 서버를 배치하여 지연 시간을 줄이고 성능을 향상시킵니다.
시스템 아키텍처 고려사항
- Scalability (확장성): 시스템이 리소스를 추가하거나 수평 확장하여 증가하는 워크로드를 처리할 수 있는 능력입니다.
- Performance (성능): 시스템이 효율적으로 작업을 실행하고 데이터를 처리하여 허용 가능한 시간 내에 작업을 완료하는 능력입니다.
- Response Time (응답시간): 시스템이 사용자 요청 또는 입력에 응답하는 데 걸리는 시간입니다.
- Throughput (처리량): 시스템이 일정 기간 동안 요청이나 트랜잭션을 처리하고 처리하는 속도입니다.
- Accessibility (접근성): 사용자들이 서비스에 중단없이 접근할 수 있는 시스템의 가용성 및 접근성을 의미합니다.
- Consistency (일관성): 시스템 전체에서 데이터의 일관성과 신뢰성을 보장하여 모든 사용자가 언제든지 동일한 데이터를 볼 수 있도록 하는 것입니다.
- Security (보안): 시스템이 불법적인 접근, 데이터 침해 및 다른 보안 위협으로부터 보호되도록 조치와 프로토콜을 적용하는 것입니다.
개발 소프트웨어 환경
시스템 소프트웨어는 컴퓨터 하드웨어와 응용 소프트웨어 간의 인터페이스를 제공하고, 하드웨어 자원을 관리하며, 컴퓨터 시스템의 동작을 제어합니다. 주요 시스템 소프트웨어에는 다음이 포함됩니다
운영체제
컴퓨터의 기본적인 기능을 제공하고 자원을 관리하는 소프트웨어입니다. 대표적인 운영체제에는 Windows, macOS, Linux 등이 있습니다.
JVM
자바 프로그램을 실행하기 위한 가상 머신으로, 자바 바이트 코드를 기계어로 변환하여 실행합니다. 이는 다양한 운영체제에서 호환되며, 자바의 크로스 플랫폼 특성을 제공합니다.
web server
웹 서버는 클라이언트로부터 HTTP 요청을 받아 정적인 웹 페이지나 리소스를 제공하는 소프트웨어입니다. 주로 정적 웹 콘텐츠를 제공하는 역할을 합니다. 대표적인 웹 서버에는 Apache, Nginx, Microsoft IIS 등이 있습니다.
WAS
동적 웹 서비스 제공하는 미들웨어
WAS는 동적인 웹 애플리케이션을 실행하기 위한 미들웨어입니다. 정적 콘텐츠 뿐만 아니라 데이터베이스와의 상호 작용, 비즈니스 로직 처리, 세션 관리 등을 포함하는 동적 웹 서비스를 제공합니다. 대표적인 WAS에는 Apache Tomcat, Red Hat JBoss, IBM WebSphere 등이 있습니다.
개발 소프트웨어 도구
- 요구사항 관리 도구
- 요구사항 관리 도구는 프로젝트의 요구사항을 관리하고 추적하는 데 사용됩니다. 주로 요구사항의 작성, 수정, 추적, 검증 등을 지원합니다.
- 대표적인 도구로는 JIRA, Trello, Microsoft Azure DevOps, IBM Rational DOORS 등이 있습니다.
- 설계/모델링 도구
- 설계/모델링 도구는 시스템의 아키텍처 및 디자인을 작성하고 관리하는 데 사용됩니다. UML(Unified Modeling Language)을 사용하여 다이어그램을 작성할 수 있습니다.
- 대표적인 도구로는 Microsoft PowerPoint, Microsoft Visio, Enterprise Architect, Lucidchart 등이 있습니다.
- 구현 도구
- 구현 도구는 개발자가 코드를 작성하고 디버깅하는 데 사용됩니다. 대부분의 개발 언어에 대한 통합 개발 환경(IDE)을 포함합니다.
- 대표적인 IDE 도구로는 IntelliJ IDEA, Eclipse, Visual Studio, Xcode 등이 있습니다.
- 테스트 도구
- 테스트 도구는 소프트웨어의 품질을 검증하기 위해 자동화된 테스트를 수행하는 데 사용됩니다. 유닛 테스트, 통합 테스트, 성능 테스트 등을 지원합니다.
- 대표적인 도구로는 JUnit, Selenium, Postman, Apache JMeter 등이 있습니다.
- 형상 관리 도구
- 형상 관리 도구는 소스 코드 및 문서 등의 변경 사항을 추적하고 버전 관리하는 데 사용됩니다. 여러 사용자가 협업하여 작업할 때 유용합니다.
- 대표적으로는 Git, CVS(Concurrent Versions System), SVN(Subversion) 등이 있습니다.
- 협업 도구
- 협업 도구는 프로젝트 팀원 간의 커뮤니케이션, 작업 관리 및 문서 공유를 지원합니다. 실시간 채팅, 업무 관리, 문서 공유 등을 제공합니다.
- 대표적으로는 Slack, Microsoft Teams, Notion, JIRA 등이 있으며, 카카오톡과 같은 메신저도 협업에 사용될 수 있습니다.
협업도구
다양함, 최근엔 카카오톡보단 Slack을 이용하여 쓰레드를 씀, notion도 자주 쓰임, JIRA
IDE(Integrated Development Environment)
IDE는 소프트웨어 개발에 필요한 다양한 기능을 하나의 프로그램 내에서 제공하는 통합 개발 환경을 말합니다.
기본 기능
- 텍스트 에디터(Text Editor): 소스 코드를 편집하고 작성하는 데 사용됩니다. 코드의 구문 강조, 자동 완성, 줄 번호 표시 등의 편리한 기능을 제공합니다.
- 컴파일러(Compiler): 프로그래밍 언어로 작성된 소스 코드를 기계어로 변환하여 실행 가능한 프로그램으로 만들어주는 도구입니다.
- 디버거(Debugger): 소스 코드를 실행하고 프로그램의 실행 중 발생하는 오류를 식별하고 해결하는 데 도움을 주는 도구입니다.
- 배포(Deployment): 완성된 소프트웨어를 배포하기 위한 기능을 제공합니다. 예를 들어, 실행 파일이나 패키지를 생성하고 배포할 수 있습니다.
- 플러그인(Plugin): 다양한 추가 기능이나 확장을 지원하기 위해 외부 플러그인을 통합하는 기능을 제공합니다.
종류
- Eclipse
- Eclipse는 Java를 비롯한 다양한 프로그래밍 언어를 지원하는 오픈 소스 IDE입니다. 플러그인 아키텍처를 기반으로 하여 다양한 확장 기능을 제공합니다.
- Visual Studio
- Visual Studio는 Microsoft사의 통합 개발 환경으로, Windows 및 .NET 프레임워크를 위한 개발에 특화되어 있습니다. 코드 편집, 디버깅, 테스팅, 배포 등을 지원합니다.
- Xcode
- Xcode는 macOS 및 iOS 애플리케이션 개발을 위한 IDE로, Apple사의 공식 개발 환경입니다. Objective-C 및 Swift를 지원하며, 시뮬레이터를 통해 애플리케이션을 실행할 수 있습니다.
- IntelliJ
- IntelliJ는 JetBrains사의 개발환경으로 Java, Kotlin, Groovy, Scala 등 다양한 언어를 지원합니다. 풍부한 기능과 뛰어난 코드 분석 기능을 제공하여 개발 생산성을 향상시킵니다.
협업도구
협업도구는 출제되기 어렵습니다. 왜냐하면, 서로 중복되는 내용이 많기 떄문입니다.
통합된 프로젝트를 동시에 수행할 수 있도록 지원하는 소프트웨어(SaaS)
* 소프트웨어 클라우드 (2023년 출제)
구분 | 설명 | 주요 키워드 |
IaaS | 클라우드 제공 업체가 가상화된 컴퓨팅 리소스를 제공하고, 사용자는 자체적으로 운영체제, 애플리케이션 등을 관리합니다. | 가상화, 인프라, 자동화 |
PaaS | 클라우드 제공 업체가 애플리케이션 개발 및 배포를 위한 플랫폼을 제공하고, 사용자는 애플리케이션 개발에만 집중합니다. | 플랫폼, 개발, 배포 |
SaaS | 클라우드 제공 업체가 소프트웨어 애플리케이션을 제공하고, 사용자는 해당 애플리케이션을 이용합니다. | 소프트웨어, 서비스 |
(중요) 형상관리도구
개념
형상관리는 소프트웨어 개발 과정에서 발생하는 모든 변경 사항을 관리하고 추적하는 프로세스를 의미합니다. 형상관리 도구는 이러한 변경 사항을 효율적으로 관리하고 버전을 관리함으로써 개발 프로세스를 보다 체계적으로 관리합니다.
- 변경관리: 프로젝트의 요구 사항이나 코드 변경 사항을 추적하고 문서화하여 관리합니다.
- 버전관리: 소프트웨어의 여러 버전을 관리하고, 필요 시 특정 버전으로 롤백할 수 있도록 합니다.
- 형상관리: 개발 중인 소프트웨어의 형상(구성 요소 및 관련 문서)을 관리하여 일관성을 유지하고 충돌을 방지합니다. ( 형상관리 변경+버전)
형상 관리 대상
형상 관리 대상은 주로 소프트웨어 개발에서 생성되는 모든 항목을 포함합니다. 주요 대상은 다음과 같습니다
- 모든 소스 코드: 프로그램 코드는 개발자가 작성하는 핵심적인 요소로, 변경 및 버전 관리가 필수적입니다.
- 라이브러리 및 의존성: 프로젝트에서 사용되는 외부 라이브러리 및 의존성도 형상 관리되어야 합니다.
- 문서 및 리소스: 프로젝트 관련 문서, 이미지, 설정 파일 등도 변경 사항을 추적하고 버전을 관리하여 일관성을 유지해야 합니다.
형상관리 절차
형상 식별 (Configuration Identification)
형상 식별은 프로젝트에서 제어해야 하는 모든 항목(형상)을 식별하고 문서화하는 과정입니다.
이 단계에서는 소프트웨어의 모든 구성 요소(코드, 문서, 테스트 케이스 등)를 식별하고 버전 관리 및 추적을 위해 고유한 식별자를 할당합니다.
* 형상 통제 (Configuration Control) - 빈출
형상 통제는 형상의 변경을 관리하고 관리되지 않은 변경을 방지하는 프로세스입니다.
새로운 요구 사항이나 버그 수정과 같은 변경 사항이 있을 때 이를 관리하여 변경의 승인과 추적을 수행합니다.
형상통제위원회 (CCB: Configuration Control Board)에서 관리합니다.
형상 감사 (Configuration Auditing)
형상 감사는 형상의 상태 및 구성 요소의 정확성을 평가하는 프로세스입니다.
프로젝트의 현재 형상이 목표와 일치하는지 확인하고 문제를 식별하여 조치를 취합니다.
형상 기록 (Configuration Record)
형상 기록은 형상 관리 프로세스를 문서화하고 형상 관련 정보를 기록하는 것을 의미합니다.
이러한 기록에는 형상 식별자, 변경 내용, 승인 절차, 버전 정보 등이 포함됩니다.
버전관리 도구
소스코드와 문서 드으이 디지털 콘텐츠에 대한 관리 도구
공유폴더 형식 (RCS, SCCS)
이 방식은 간단한 파일 공유 방식으로, 파일을 공유 폴더에 저장하고 변경 내용을 추적하는 방식입니다.
RCS(Revision Control System)와 SCCS(Source Code Control System)는 이러한 방식의 초기 형태로, 각각 파일 단위로 변경 내용을 추적하고 버전 관리를 수행합니다.
클라이언트/서버 방식 (CVS, SVN)
클라이언트/서버 방식은 중앙 서버에 저장소가 있고, 클라이언트는 이 중앙 서버에서 파일을 가져와 작업하며 변경 사항을 커밋하여 중앙 서버에 업로드합니다.
CVS(Concurrent Versions System)
초기 버전 관리 도구로, 여러 사용자가 동시에 파일을 편집할 수 있도록 합니다. 하지만 네트워크 속도나 충돌 관리에 한계가 있습니다.SVN(Subversion)
CVS의 개선된 버전으로, 더 나은 버전 관리 및 충돌 해결 기능을 제공합니다.
분산 저장소 방식 (Git)
분산 저장소 방식은 중앙 서버와 로컬 저장소가 별도로 존재하며, 각 개발자는 자체 로컬 저장소에서 작업하고 필요할 때 중앙 서버에 변경 사항을 푸시합니다.
Git
Git은 가장 널리 사용되는 분산 버전 관리 시스템으로, 빠른 속도, 효율적인 브랜치 관리, 분산 작업 환경을 제공합니다. 또한 오픈 소스이며 커뮤니티가 활발하게 지원하고 있습니다.
추가 도구
클리어케이스(ClearCase)
클리어케이스는 IBM Rational Software에서 개발한 상용 형상 관리 시스템입니다. 주로 대규모 기업 및 조직에서 사용됩니다.
클리어케이스는 중앙 집중식 아키텍처를 기반으로 하며, 다양한 버전 관리 및 협업 기능을 제공합니다. 이는 복잡한 프로젝트 환경에서 소스 코드의 버전 관리, 팀 협업, 변경 내용 관리 등을 지원합니다.
또한, 다양한 플랫폼에서 동작하고, 확장성이 뛰어나며, 안정성이 높다는 장점이 있습니다. 그러나 높은 라이선스 비용과 복잡한 구성 및 관리가 단점으로 언급됩니다.
비트키퍼(BitKeeper)
비트키퍼는 리눅스 커널 개발자인 리누스 토르발스가 만든 분산 형상 관리 시스템입니다.
초기에는 리눅스 커널의 소스 코드 관리에 사용되었으며, 오픈 소스 커뮤니티에서 많이 사용되었습니다. 비트키퍼는 분산 저장소를 기반으로 하고 있어 개발자들이 독립적으로 작업할 수 있으며, 브랜치 및 병합 작업을 용이하게 합니다.
팀 협업을 강화하고 소프트웨어 개발 프로세스를 더 유연하게 만듭니다. 그러나 비트키퍼는 상용 소프트웨어이며, 무료 버전은 기능이 제한되어 있습니다.
버전관리 주요 용어
용어 | 설명 |
Repository | 소스 코드 및 변경 사항을 저장하는 중앙 저장소 또는 데이터베이스. |
Checkout | 저장소에서 소스 코드의 특정 버전을 로컬 환경으로 가져오는 작업. |
Commit | 로컬 환경에서의 변경 사항을 저장소에 반영하는 작업. |
Update | 저장소에서 최신 변경 사항을 로컬 환경으로 가져오는 작업. |
Add | 새로운 파일을 저장소에 추가하거나 변경된 파일을 추적하는 작업. |
Trunk | 소프트웨어 개발에서 메인 또는 주요 개발 라인을 가리키는 용어. |
Branch | 저장소에서 독립적으로 개발을 진행하기 위해 만든 별도의 버전. |
Merge | 두 개의 분리된 브랜치나 버전을 하나로 통합하는 작업. |
Diff | 파일이나 폴더 간의 차이점을 비교하여 보여주는 작업. |
빌드 도구
빌드는 소스 코드 및 기타 자원을 컴파일하고 묶어서 실행 가능한 소프트웨어를 생성하는 프로세스입니다.
이 과정은 소스 코드를 컴파일하고, 필요한 라이브러리를 링크하고, 리소스를 패키징하며, 실행 파일이나 배포 가능한 아티팩트를 생성하는 등의 작업을 포함합니다.
빌드는 소프트웨어 개발에서 매우 중요한 단계로, 코드 변경 사항을 테스트하고 배포하기 전에 반복적으로 수행됩니다.
- 소스 파일들을 컴파일하고 다른 필요한 과정들을 거쳐 실행 가능한 소프트웨어
빌드 자동화 도구 특징
빌드 자동화 도구는 빌드 프로세스를 자동화하고 관리하는 데 사용됩니다. 이러한 도구의 특징은 다음과 같습니다
- 자동화: 빌드 프로세스를 자동화하여 개발자가 수동으로 작업할 필요 없이 반복적인 작업을 자동화합니다.
- 구성 관리: 소스 코드, 리소스 및 의존성과 같은 빌드에 필요한 모든 요소를 관리합니다.
- 효율성: 빌드를 빠르고 효율적으로 수행하여 개발자의 시간을 절약하고 빠른 피드백을 제공합니다.
- 일관성: 각 빌드가 일관된 방식으로 실행되어 예측 가능한 결과를 제공합니다.
빌드 자동화 프로세스 순서
- 소스 코드 체크아웃: 소스 코드 저장소에서 최신 코드를 가져옵니다.
- 의존성 설치: 프로젝트에 필요한 외부 라이브러리 및 의존성을 설치하거나 업데이트합니다.
- 빌드: 소스 코드를 컴파일하고, 테스트 코드를 실행하고, 리소스를 처리하여 실행 가능한 소프트웨어를 생성합니다.
- 테스트: 생성된 소프트웨어를 자동화된 테스트 프레임워크를 사용하여 테스트합니다.
- 배포: 테스트를 통과한 소프트웨어를 적절한 환경으로 배포합니다.
빌드 -> 테스트 -> 배포
- 빌드: 위에서 설명한대로, 소스 코드 및 기타 자원을 컴파일하고 묶어서 실행 가능한 소프트웨어를 생성하는 과정입니다.
- 테스트: 빌드된 소프트웨어를 테스트하여 코드의 품질과 정확성을 확인합니다. 이 과정에서 단위 테스트, 통합 테스트, 시스템 테스트 등을 수행합니다.
- 배포: 테스트를 통과한 소프트웨어를 실제 운영 환경에 배포하여 사용자에게 제공합니다. 이 과정은 사용자들이 소프트웨어를 실제로 사용할 수 있도록 설치 및 구성을 포함합니다.
빌드 자동화 종류
- Make(UNIX)
- 개념: Make는 소프트웨어 빌드 프로세스를 자동화하기 위한 도구로, 주로 C 및 C++ 프로젝트에서 사용됩니다. Makefile에 빌드 스크립트를 작성하여 프로젝트를 빌드합니다.
- 설명: Make는 파일 간의 종속성을 파악하고 변경된 파일만 다시 컴파일하여 효율적으로 빌드를 수행합니다. 사용자가 Makefile을 작성하여 빌드 과정을 정의하고, make 명령어를 사용하여 빌드를 실행합니다.
- 주요 특징: 간단하고 유연한 사용법, 효율적인 빌드 프로세스 제공, 파일 간의 종속성 관리.
- Ant(문서 생성)
- 개념: Ant는 Java 프로젝트를 위한 자동화 도구로, XML 기반의 빌드 스크립트를 사용
- 설명: 프로젝트의 빌드, 테스트, 배포 등의 작업을 수행하는 데 사용됩니다. Ant 스크립트를 작성하여 프로젝트 빌드 과정을 정의하고, ant 명령어를 사용하여 빌드를 실행합니다.
- 주요 특징: 유연한 빌드 프로세스 정의, 다양한 작업(Task) 지원, 크로스 플랫폼 지원.
- Maven (문서 생성)
- 개념: Maven은 Java 프로젝트의 빌드, 관리 및 문서화를 위한 도구 XML 기반의 프로젝트 관리 도구입니다.
- 설명: 프로젝트의 의존성 관리, 라이프사이클 관리, 라이브러리 관리 등을 자동화합니다. Maven의 중앙 저장소를 통해 의존성을 다운로드하고 빌드를 수행합니다.
- 주요 특징: 간단한 설정 및 관리, 일관된 프로젝트 구조 유지, 표준화된 빌드 라이프사이클.
- Jenkins
- 개념: Jenkins는 지속적 통합(CI, Continuous Integration)을 위한 자동화 서버입니다. 빌드, 테스트 및 배포와 같은 소프트웨어 개발 프로세스를 자동화합니다.
- 설명: 소스 코드 변경 사항을 감지하여 자동으로 빌드 및 테스트를 수행하고, 결과를 팀에 알려줍니다. Jenkins는 다양한 플러그인을 지원하여 확장성이 뛰어납니다.
- 주요 특징: 지속적 통합 및 지속적 전달(CI/CD), 다양한 플러그인 지원, 대시보드 및 알림 기능.
- Gradle (안드로이드)
- 개념: Gradle은 Groovy 기반의 빌드 자동화 도구로, Ant와 Maven의 장점을 결합하여 개발되었습니다. Gradle은 Groovy DSL(Domain Specific Language)을 사용하여 빌드 스크립트를 작성합니다.
- 설명: Gradle은 간결하고 가독성이 높은 빌드 스크립트를 작성할 수 있으며, 빌드 과정을 자동화하고 의존성 관리를 지원합니다. Maven과 호환되는 기능도 제공합니다. Android 개발에 주요한 역할을 합니다.
- 주요 특징: 유연한 빌드 스크립트 작성, 빌드 캐싱 및 병렬 빌드 지원, Maven 및 Ivy와의 호환성.
'정보처리기사' 카테고리의 다른 글
12. 모듈 구현 - 1과목 소프트웨어 구축 (0) | 2024.03.20 |
---|---|
11. 개발 프레임 워크 - 소프트웨어 구축 (0) | 2024.03.20 |
[정보처리기사실기] 9. UI 구현 - 1과목 소프트웨어 구축 (0) | 2024.03.18 |
[정보처리기사] 8. UI 설계 - 1과목 소프트웨어 구축 (2) | 2024.03.17 |
[정처기실기] 7. UML - 1과목 소프트웨어 구축 (3) | 2024.03.17 |
댓글