앞으로의 인트아이 운영 방향
안녕하세요. 인트아이 5대 회장 정보통신공학과 박승재입니다.
저희 인트아이는 취업 정보 교류 및 자기 계발을 위해 설립된 정보통신공학과의 프로그래밍 소모임입니다.
인트아이는 2016년 여름방학 중 정보통신공학과 홈페이지 개편 프로젝트를 위한 학생회 소모임으로 결성되었으며,
현재는 정보통신공학과 공식 소모임으로 승격되어, 프로그래밍 및 자기 계발 관련 정보 교류와 졸업생 선배님과의 진로(취업/창업/진학) 조언을 받는 것을 목적으로 합니다.
전공과목 스터디
이번 글에서는 앞으로의 소모임 운영 방향에 대해 풀어보려 합니다.
지난학기까지는 전공과목과 취업용 IT기술(Spring, Node.js 등)에 스터디가 주요 활동이었습니다.
하지만, 이번학기부터는 활동을 바꿔볼까합니다.
우선, 객체지향 프로그래밍 등 전공과목 스터디를 폐지할 것입니다.
저는 인하대학교 교수님들의 강의력은 전공과목을 이해하기에 충분하다고 생각합니다.
지난 전공과목 스터디가 진행되는 것을 보며, 어떻게 하면 스터디원들에게 시간이 아깝지 않은 강의가 될 수 있을지 고민했습니다.
강의자는 교수님께서 하신 말을 앵무새처럼 똑같이 반복하고, 스터디원은 이해가 됐는지 안됐는지 반응을 보이지 않는 것을 보며 과연 이 스터디가 누구를 위한 스터디인지 생각하게 되었습니다.
아마 스터디를 신청한 회원분들은 스터디에서 ① 내가 모르는 것을 알려준다거나 ② 모르는 것을 물어보기 위해 스터디를 신청했을 것입니다.
안타깝게도, 스터디는 강의자료를 기반으로 하기 때문에 교수님께서 알려준 내용을 다시 한번 듣는 시간이 될 수밖에 없습니다.
또한, 2020년 프로그래밍입문(ICE1003) 시험에서 수업시간에 알려주지 않은 f-string
문법을 사용한 풀이를 전부 오답처리한 사례가 있었기 때문에 강의자료를 벗어나는 내용을 알려주기는 부담스러운 상황입니다.
그렇기에 앞으로 스터디를 열더라도 수업 때 들은 내용을 똑같이 듣게 될 확률이 높습니다.
저는 이런 스터디는 시간 낭비라고 생각합니다.
만약 공부하다 이해가 되지 않는 것이 생긴다면 인트아이 전체방에 올려주시면 됩니다.
재학생 방도 좋고 졸업생-재학생 방도 좋습니다.
모던 C++ 등 전공과목의 심화내용은 여름방학과 겨울방학을 이용해 스터디를 개설할 생각입니다.
이번 여름은 찍먹 스터디로 대체되면서 생략되었지만, 지난 겨울방학에는 C++ 심화 스터디가 개설되었습니다.
이번 겨울에 어느 정도 수요가 나온다면 강의자료를 보강해서 C++ 심화 스터디를 개설하도록 하겠습니다.
대외활동&자격증 스터디
학기 중 수시로 외부 해커톤과 공모전 준비팀을 구성하여 대외활동에 참여하고자 합니다.
또한, 리눅스 마스터 같은 자격증 스터디를 통해 방향이 맞는 사람끼리 함께 성장할 수 있는 환경을 만들고자 합니다.
인트아이 내부에서 하는 작은 해커톤도 괜찮지만, 목표와 성과가 없으면 지속적인 동기부여가 어렵다고 판단했습니다.
그래서 구체화된 목표가 제시되어 있으면서, 소모임 활동을 하면서 성과(수상)까지 낼 수 있는 외부의 해커톤과 공모전에 참여하는 것이 더 낫다 결정했습니다.
다만, 현재 카톡방에서 말을 하는 사람이 매우 적기 때문에, 효과적인 팀 모집을 위해 카톡방을 활성화할 방안에 대해서는 간부진과 논의가 필요할 것 같습니다.
기술분석 스터디
분석이라고 써놓았지만, 사실 거창한 것은 아닙니다.
기존의 취업용 IT기술(Spring, Node.js 등) 스터디를 대체하기 위한 새로운 스터디입니다.
과거 저의 주된 고민은 “내가 이 기술을 공부한 것이 미래에도 쓰일까”였습니다.
현재 제가 내린 결론은 “디테일은 다르더라도 원리는 같다” 입니다.
웹 프레임워크를 예로 들겠습니다.
웹 프레임워크는 빠르게 웹 서비스 개발을 하기 위해 사용하는 구조화된 템플릿이라 생각하면 됩니다.
웹 프레임워크의 종류에는 Spring, Django, Express.js, Laravel 등 많은 종류가 있습니다.
세부적인 구현에는 차이가 있지만, API의 Endpoint를 함수나 메소드로 정의하는 방법을 사용합니다.
Spring:
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}
Django:
def hello(request):
text = """<h1>welcome to my app !</h1>"""
return HttpResponse(text)
urlpatterns = patterns('',
url(r'^hello/', 'myapp.views.hello', name = 'hello'),
)
Express.js:
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Example app listening on port ${port}`);
});
Laravel:
Route::get('users', function()
{
return 'Users!';
});
마찬가지로, 패러다임 자체가 바뀌지 않는 한, 모든 프로그래밍 언어의 논리구조는 동일합니다.
다만, 논리구조를 어떻게 표현하느냐에 따라 문법의 차이가 발생하는 것입니다.
기술분석 스터디에서는 기술의 세부적인 내용은 다루지 않을 것입니다.
한 사람마다 기술 하나씩을 정해서 3문장 정도로,
- 어떤 문제를 해결하기 위해 기술이 나왔고,
- 기술이 사용된 사례를 조사하고,
- 어떤 이유에서 소멸되었는지를 분석할 것입니다.
그리고 분석한 내용을 서로 공유할 것입니다.
아래는 기술분석 사례입니다.
D언어
2007년 정식 발표된 프로그래밍 언어, C++ 대체, 멀티 패러다임, GC(Garbage Collection) On/Off 가능
사용 사례: https://dlang.org/orgs-using-d.html
모던C++, Go, Rust 등 D보다 사용하기 편하면서 기존 C++의 문제를 해결한 언어가 등장하며 잊혀짐
기술은 계속해서 변하기 때문에, 얕고 넓게 아는 것은 깊고 좁게 아는 것보다 큰 흐름을 파악하기 유리하다 생각합니다.
현재 계획으로는, 시험기간을 제외하고 매주 1회씩 모여서 각자 조사한 내용을 공유하는 시간을 갖는 것을 생각하고 있습니다.
기존의 취업용 IT기술(Spring, Node.js 등) 스터디는 대외활동&자격증 스터디에 편입되어 팀 내에서 자율적으로 이루어질 것입니다.
예상 Q&A
Q: 전반적으로 좋은데 혹시 저학년들이 참여하는데 어려움이 있을까요?? 1학년들은 아는게 없어서리..
A: 1학년들은 공모전이나 기술분석 스터디 위주로 참여하면 될 것 같아요!