GDSC Sookmyung 활동 76

CS를 공부하는 이유

현재 4차 산업혁명이라고 하고, 코딩 열풍이 불어오면서 다양한 사람들이 코딩을 배우려고 하고 있습니다. 그렇다면 왜 다들 코딩을 배워야 하는 것이라고 말하는 걸까요? 1. 코딩을 배워야 하는 이유 1) 내가 생각한 서비스를 구현하기 위해 2) 문제해결을 위한 사고의 흐름을 명확히 정리가 가능하기 때문 3) 연봉이 높아서 4) 배우기에 상대적으로 쉬워졌고, 활용성이 높기 때문 5) 기타(취업이 잘되서...등등) 전반적인 코딩을 배워야 하는, 또는 배우고 싶다는 이유들에 대해서 전반적으로 현재 사회에서 가장 범용성이 뛰어난 과목 중 하나라는 점에서 착안되었다는 점을 알 수 있습니다. 코딩, 컴퓨터 프로그래밍은 하나 이상의 관련된 추상 알고리즘을 특정한 프로그래밍 언어를 이용해 구체적인 컴퓨터 프로그램으로 구..

DATABASE

데이터베이스를 사용하는 이유 데이터베이스가 존재하기 이전에는 파일 시스템을 이용하여 데이터를 관리하였다. (현재도 부분적으로 사용되고 있다.) 데이터를 각각의 파일 단위로 저장하며 이러한 일들을 처리하기 위한 독립적인 애플리케이션과 상호 연동이 되어야 한다. 데이터를 파일 단위로 저장할때 데이터 종속성 문제와 중복성, 데이터 무결성문제가 존재한다. 데이터베이스의 특징 1. 데이터의 독립성 - 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다. - 논리적 독립성 : 데이터베이스는 논리적인 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다. 2. 데이터의 무결성 : 여러 경로를 통해 잘못된 데..

IT Automation Tool : Ansible(개념, 역할, 특징, 구성요소)

Ansible이란? “Ansible is a radically simple IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs.” Ansible은 서버에 반복적인 작업을 코드 기반으로 자동화할 수 있는 툴입니다. 이렇게만 정의한다면 무슨 말인지 잘 이해가 가지 않으니 예를 들어 어떠한 상황에서 필요한 것인지 알아봅시다. 시스템을 이루기 위해 여러 서비스가 모여 하나의 시스템으로 운영이 되는데, 이때 어떠한 시스템을 구성하는데 필요한 다양한 서비스들은 각각의 서버에서 운영이 되..

Recoil - 새로운 리액트 상태관리 라이브러리

Recoil? A state management library for React / 리액트를 위한 상태관리 라이브러리 리액트의 상태관리란? 또 다른 상태관리 라이브러리 Redux의 작동 방식 상태가 변경되면 액션을 통해서 리듀서에 전달 리듀서에서 상태를 변경해 스토어에 저장 스토어에서 상태가 변경되면 해당 상태를 사용하고 있는 컴포넌트에 변경된 상태 전달 ▶ 초기 세팅이 복잡하고, 상태 하나만 변경하려 해도 너무 많은 코드가 필요하다!! 그래서 등장한 Recoil! 확 줄어든 보일러 플레이트 코드들 낮은 러닝 커브 hook 형태로 상태변화가 이뤄짐 Recoil 시작하기 npm install recoil 혹은 yarn add recoil Recoil 초기 세팅 import React from 'react'..

[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..

떠오르는 분야, 인공지능 ( AI )

인공지능이란? 인간의 학습능력, 추론 능력, 지각 능력 등 다양한 능력을 인공지능으로 구현한 컴퓨터 시스템을 의미합니다. 📶 딥러닝과 머신러닝 ▶ 머신러닝이란 컴퓨터가 학습할 수 있도록 알고리즘과 기술을 개발하는 것을 의미합니다 ▶ 딥러닝은 다량의 복잡한 자료들에서 핵심적인 내용만 추려내는 작업을 하는 기계 학습 알고리즘을 의미합니다. 머신러닝 🆚 딥러닝 의 차이 ?? 딥러닝은 분류에 사용할 데이터를 스스로 학습할 수 있다는 반면 머신러닝은 학습 데이터를 수동으로 제공해야 한다는 점입니다. 📶 여러가지 인공지능 기법 ✔️ ANN ( Artificial Neural Network ) ANN 딥러닝은 사람의 신경망 원리와 구조를 모방하여 만든 기계학습 알고리즘인 인공신경망( ANN )을 기초로 하고 있습니다..

[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은 물리 서버처럼 보이고 작동하므로 애플리케..