GDSC Sookmyung 활동/Speaker Session & Hands on Workshop 12

[Algorithm] SMUPC를 위한 알고리즘 노트

이 노트는 SMUPC에 참가하시는 분들을 위해 작성한 글입니다. Python, C, C++, Java 코드가 작성되어 있으니 대회 문제를 푸실 때 많은 도움이 되기를 바랍니다. 오타나 오류가 있을 수 있다는 점... 감안하시고 봐주시면 감사하겠습니다:) SMUPC 참가하시는 분들 모두 화이팅! 목차 1. 시간복잡도 2. 정렬 3. Stack, Queue 4. 이진검색, 이분탐색 5. DFS, BFS 시간 복잡도 문제를 해결하는데 걸리는 시간으로 주로 Big-O 표기법을 사용한다. Big-O 표기법은 계수와 낮은 차수의 항을 제외한다. 알고리즘 문제를 풀기 전에 생각한 풀이가 제한된 시간 복잡도를 넘지는 않는지, 문제를 풀고 난 후에는 제한된 시간 복잡도에 맞게 풀었는지 확인하는 데 중요한 개념이다. O(..

[CI/CD] CI/CD와 Github Action 살펴보기

안녕하세요 'CI/CD와 Github Action 살펴보기' 라는 주제로 진행한 Speaker Session을 정리한 글입니다! ⬇️ 아래는 발표 자료 파일 입니다 ⬇️ 1. CI/CD란? CI/CD란, 작업한 소스코드를 빌드하고 저장소에 전달 후 배포까지 하는 모든 과정을 자동화하여 어플리케이션을 보다 짧은 단위로 고객에게 제공하는 방법이다. CI (Continuous Integration) - 지속적 통합 - 개발을 진행하면서도 코드의 품질을 관리할 수 있도록 한다. - 여러 명이 하나의 코드에 대해 수정을 진행할 때에도 지속적으로 통합하면서 관리할 수 있다. - CI의 목표: 버그를 신속하게 찾아 해결하여 소프트웨어의 품질을 높이고, 새로운 업데이트의 검증 및 릴리즈 시간을 단축시킨다. CD (Co..

[Web Session] http 웹 기본 지식

모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., 웹 기술을 사용하는 개발자라면 누구나 OK!꼭 필요한 HTTP의 핵심을 알려드립니다. 📣 확인해주세요!본 강의는 자바 스 www.inflearn.com 위 강의를 통해 공부한 내용을 정리함 안녕하세요!! ٩( *˙0˙*)۶ front-end 코어 멤버 김지혜입니다 "웹 개발자라면 알아야 할 http 기본 지식" 을 주제로 진행한 speaker session 포스팅입니다! 링크 걸어둔 강의를 참고하여 세션을 준비하였고 백, 프론트 모두 도움이 되는 내용이니 세션에 참여하지 않으셨던 분들도 포스팅을 통해 조금이라도 배워가는 부분이 있으셨으면 좋겠습니다! (시..

[Git/GitHub Session] Git 시작하기

Git을 써야하는 이유 Git 이란? Git, GitHub 시작하기 Git, GitHub 명령어 모음 Github 완벽 정복 1. Git을 써야하는 이유 평상 시 우리가 문서를 작성하는 방법 보고서.hwp 보고서_최종.hwp 보고서_최종111.hwp final.hwp 진짜최종_보고서.hwp 과제로 제출할 보고서를 쓰거나, PPT를 만들 때 바탕화면이 위와 같은 보고서 버전 파일들로 너저분했던 경험이 한 번 쯤 있을 것입니다. 위와 같이 첫 번째로 작성한 보고서부터 최종적으로 제출할 보고서까지의 변화들을 버전으로 관리할 수 있도록 여러 기능을 제공하는 게 바로 git 분산 버전 시스템이 맡은 역할입니다. 2. Git 이란? Git의 구조 'Working Directory'란 내 컴퓨터에서 자유롭게 코드를 ..

[Clean Code] 가독성 좋은 코드 작성 팁

이 글은 2021.05.03 에 진행된 코어멤버 경림님의 '가독성 좋은 코드 작성 팁' 세션을 바탕으로 작성된 블로그 포스팅입니다. 새 창에서 열기 (발표자 노트를 참고하실 수 있습니다) 가독성 좋은 코드 작성 팁 1. Clean Code란? 2. 표면적 수준에서의 코드 개선 3. 로직의 개선 참고 도서: 『클린 코드』 - 로버트 C. 마틴 저. 『읽기 좋은 코드가 좋은 코드다』 - 더스틴 보즈웰, 트레버 파우커 저. 1. Clean Code란? C++의 창시자인 비야네 스트롭스트롭, UML의 창시자인 그래디 부치, OTI의 창립자인 큰 데이브 토마스는 각각 클린 코드에 대해 다음과 같이 말합니다. “I like my code to be elegant and efficient. The logic shou..

[Git/GitHub Session] Git, GitHub 시작하기

이 글은 20.09.30 ~ 20.10.04 DSC Sookmyung Git,GitHub Mission 이후 2020.10.05 에 진행된 코어멤버 하연, 나현님의 'Git,GitHub 시작하기' 세션을 바탕으로 작성된 블로그 포스팅입니다. 새 창에서 열기 (발표자 노트를 참고하실 수 있습니다) Git, GitHub 시작하기 Git 이란? Git 의 구조 혼자 써보는 Git, GitHub 협업하며 쓰는 Git, GitHub GitHub 의 유용한 서비스 1. Git 이란? : Distributed Version Control System Git은 분산 버전 관리 소프트웨어입니다. GitHub는 Git을 사용하는 프로젝트를 지원하는 웹 호스팅 서비스입니다. 즉, GitHub는 Git의 원격저장소를 만들고 ..

[Docker] Docker로 배포하기

이 글은 2021.03.29 에 진행된 코어멤버 동선님의 'Docker로 배포하기' 세션을 바탕으로 작성된 블로그 포스팅입니다. 새 창에서 열기 (발표자 노트를 참고하실 수 있습니다) 미리 도커데스크톱을 설치해 오시면 빠른 진행이 가능합니다! (www.docker.com/products/docker-desktop) 1. Docker Containers vs Virtual Machines 가상화 : 하이퍼바이저라고 하는 소프트웨어는 리소스가 파티셔닝되어 VM 전용으로 할당될 수 있도록 리소스를 물리 머신에서 분리합니다. 사용자가 물리 환경의 추가 리소스를 요구하는 VM 명령을 발행하면 하이퍼바이저는 이 요청을 물리 시스템으로 전달하고 변경 사항을 캐싱합니다. VM은 물리 서버처럼 보이고 작동하므로 애플리케..

[Algorithm]C++로 알고리즘 시작하기

이 글은 2021.03.12 에 진행된 코어멤버 수연님의 ‘C++로 알고리즘 시작하기’ 세션을 바탕으로 작성된 블로그 포스팅입니다. 새 창에서 열기 (발표자 노트를 참고하실 수 있습니다) 시작하기 💡 왜 알고리즘 문제 해결에서 C++를 많이 사용하나요? low-level 언어이므로 속도가 매우 빠릅니다. 참고할 수 있는 예제 코드가 많습니다. 가끔 C++ 사용을 강제하는 문제가 있습니다. 💡 C를 통한 문제 해결과의 차이점은 뭔가요? cin, cout을 통한 입출력 namespace 새로운 타입(string, bool 등) 정렬 함수, 자료구조 등이 이미 구현되어 있음(STL) C++ Fast I/O cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(false);..

[Git/GitHub] 2. branch

이전 포스팅에서 기본적인 commit을 하는 방법에 대해 알아보았습니다. 이번 포스팅에서는 branch 를 활용하는 기본적인 방법에 대해 알아보겠습니다. 먼저 branch의 개념을 간략하게 말하자면, 한 저장소에서 다른 개발자들과 작업하고 싶을 때 브랜치를 만들어 작업합니다. 내가 혼자 한 줄로 쌓아가던 커밋을 여러 줄로 쌓아갈 수 있도록 하는 것입니다. 이 때 한 줄이 한 브랜치입니다. 여러 명이 작업하다보면 같은 부분의 코드를 수정할 가능성이 있습니다. 그러면 나중에 충돌이 일어납니다. 여러 줄로 커밋을 쌓고 나중에 합치면서 충돌을 해결해서 하나의 완성된 코드로 만들어 갑니다. 자, 이제 위의 리스트를 차례로 수행해보겠습니다. 여기서는 간단하게 하기 위해 여러 사람과 함께 작업하는 저장소 대신 이전 ..

[Git/Github] 0. 깃이란? 깃허브란?

📌 버전 관리 시스템 (VCS, Version Control System) 형상 관리 시스템이라고도 불리는 버전 관리 시스템은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템입니다. 각 파일을 이전 상태로 되돌릴 수 있고, 프로젝트를 통째로 이전 상태로 되돌릴 수 있습니다. 또한, 시간에 따라 수정 내용을 비교해 볼 수 있고, 누가 문제를 일으켰는지도 추적할 수 있고, 누가 언제 만들어낸 이슈인지도 알 수 있습니다. 따라서 버전 관리를 하고 있다면 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구할 수 있습니다. 1. 중앙집중식 버전 관리 시스템 (CVCS, Central VCS) 프로젝트를 진행하다 보면 다른 개발자와 함께 작업해야 하는 경우가 많습니다. 이럴 ..