More actions
imported>wjh0470 No edit summary |
(Repair MoniWiki formatting after migration) |
||
| (9 intermediate revisions by 5 users not shown) | |||
| Line 1: | Line 1: | ||
= '''2019.05.15 ZeroPage 정모''' = | = '''2019.05.15 [[ZeroPage]] 정모''' = | ||
__TOC__ | __TOC__ | ||
| Line 5: | Line 5: | ||
== OMS == | == OMS == | ||
OMS 주자 : 24기 [[김정민]] 학우 - 봄이 좋냐? | OMS 주자 : 24기 [[김정민]] 학우 - 봄이 좋냐? | ||
=== 제목 유래 === | |||
왜 제목이 봄이 좋냐였나? | |||
: 봄... 봄... Spring... Spring framework... (의식의 흐름)... 아무런 생각이 없어서. | |||
=== 그래서 스프링이 뭐죠? === | |||
Spring 프레임워크란? | |||
말 그대로 프레임워크, 서버 프로그램을 만드는 프레임워크. | |||
어 그럼 서버는 뭐죠? 뒤에서 설명 | |||
=== 스프링의 특징 === | |||
Spring의 가장 큰 특징 두개 | |||
* DI (의존성 주입) | |||
* AOP (관점 지향 프로그래밍) | |||
오른쪽 로고 친숙하죠? ㅎ | |||
=== 근데 프레임워크가 뭐죠? === | |||
Framework란? | |||
뼈대, 골격, 틀 이런 뜻. Library랑 다르다. | |||
* Library = 필요한 기능을 짜둔 것 | |||
* Framework = 이리 만들고 구현하라 강요하는, 즉 형태를 짜주는 것 | |||
==== 프레임워크에서 중요한 점 ==== | |||
Framework에선 IoC (제어 역전)이 중요하다. | |||
* 라이브러리를 쓸땐 여러분의 코드가 라이브러리를 부른다. | |||
* 프레임워크를 쓸땐 프레임워크가 여러분의 코드를 부른다. | |||
=== 그래서 앞서 말한 서버가 뭐죠? === | |||
저도 몰라요 | |||
그러니 예시를 들어서 설명할께요. | |||
==== Client-Server 모델 예시 ==== | |||
네이버를 접속하면 네이버가 나오죠? | |||
이 네이버, html파일을 전송해주는 애는? 서버 | |||
(회장님 질문: 프로그래밍 언어인가요?) | |||
아니에요~ | |||
==== 인프라 모형 예시 ==== | |||
그림 : Presentiation Layer > Application Layer > Data Layer | |||
여러분이 보는 거 있고 그 밑에 그걸 주는 서버 있고 그 밑에 데이터 주는 서버 있고 | |||
스프링은 중간을 만들게 해주는 프레임워크다~ 이 말이야! | |||
==== 다시 설명해드리죠 ==== | |||
브라우저(아닐 수도 있지만)가 요청을 하면 html을 보내주는 애가 서버에요. | |||
이 요청은 다양해요. 로그인 요청일 수도 있겠죠. | |||
이런 다양한 요청을 받아주고 결과물을 html로 던저주는 게 스프링이고요 | |||
html이 아니라 json같은 다른 형식일 수도 있어요. | |||
=== 근데 사실 앞서 말씀드린 것들은 === | |||
스프링만의 특징이 아니에요. | |||
django, flask 같은 애들도 이런 특징을 가지고 있습니다. | |||
클론이요? 저도 모르는데 넣어봤어요. | |||
익스프레스? 까먹고 못 넣었네요. | |||
암튼 이런 다양한 프레임워크들이 있어요. | |||
=== 그래서 스프링은 뭐가 다르죠? === | |||
두가지가 있어요. | |||
==== Dependenc Injection ==== | |||
프레임워크가 니 코드를 부르지. 니 코드가 프레임워크를 부르지 않아요. | |||
IoC랑 혼동되기도 하는 개념이에요. 완전히 분리되지 않은 개념이라서... | |||
각 class를 bean object로 구성하여 Container가 관리합니다. | |||
그러면 bean들끼리는 서로 몰라도 되는, 결합도를 낮추는 거에요. | |||
이것을 '''의존성을 주입'''한다고 말해요. | |||
===== 어떻게? ===== | |||
Request가 온다 | |||
-> 디스패쳐 서블렛이 핸들러를 볼러용 | |||
-> 핸들러를 매핑해요. | |||
-> 핸들러가 컨트롤러를 불러용 | |||
-> 뷰 리솔버가 뷰를 볼러요. | |||
... 이렇게 간접적으로 이어지게 하는거에요. | |||
잘 모르겠죠? 저도 잘 몰라요. | |||
구현 해봐야 아는데 | |||
==== AOP(Aspect-Oriented Programming) ==== | |||
이거 쓴다고 OOP를 못 쓰는 건 아니에요. 하나의 구현방식이라 생각하시면 되고요. | |||
코드의 중복을 방지해주는 거에요. | |||
===== 개념 ===== | |||
join point : 프로그램 실행 중 어떤 시점에서 실행할지 지정해주는 것, Spring에선 method call의 시작점, before? after? 이런식을 구현해요. | |||
Advice : 특정 join point에서 수행되는 동작. 예를 들어 세션으로 관리자가 맞는지 검사한다던지... 다양한 게 있겠죠? 그런식으로 권한 관리, 로깅 이런걸 할 수 있게. | |||
@Aspect와 @Around를 써서 무언가를 할 수도 있어요. | |||
==== Annotation ==== | |||
키워드들을 이용해서 자동으로 bean 설정을 해주는거에요. | |||
@Autowired를 넣으면 이걸 감지해서 자동으로 주입해주는... 뭐 이런 기능 | |||
xml이랑 겹치면 헷갈리면 하나만 쓰시든 기준을 세우든 하시면 됩니다. | |||
=== 까먹은 것 === | |||
Spring은 원래 Enterprise용이에요. | |||
스프링을 쓴다면 팀프로젝트일 가능성이 높지 않을까~ | |||
그래서 언제 어노테이션을 쓰지 이건 어떻게 구현할지 미리 합의를 해두시고 시작하시는 게 좋을 겁니다. | |||
=== 기타 === | |||
ORM, Spring Security, Spring Boot 있고요 스프링의 장점은 한글자료가 많다는 겁니다. | |||
왜나고요? 정부에서 자바개발자를 찍어낼때 스프링을 가르쳤기 때문에... 학습하기 쉬울 수도 있어요. 물론 영어보단 낫다는 느낌입니다. | |||
=== Q&A === | |||
'''Q.''' 스프링을 어떻게 시작하면 좋을까요? | |||
'''A.''' 부트로 시작하세요. "스프링 따라하기" 이런거 치면 자료 많아요. | |||
=== OMS 다음 주자 === | |||
송정우의 "HTML 하는 사람은 프로그래머일까요?" | |||
== 스터디 및 프로젝트 == | == 스터디 및 프로젝트 == | ||
| Line 18: | Line 121: | ||
| [[Shaprest++]] | | [[Shaprest++]] | ||
| C++ | | C++ | ||
| | | 19, 18강 했음. | ||
|- | |- | ||
| [[앙기모와 머머리]] | | [[앙기모와 머머리]] | ||
| 모의투자 | | 모의투자 | ||
| | | 다음 주부터 주식 API 다룬다고 들었음. | ||
|- | |- | ||
| [[J를기다리며]] | | [[J를기다리며]] | ||
| 머신러닝 | | 머신러닝 | ||
| | | 텐서플로우를 시작할 것임. | ||
|- | |- | ||
| [[사과세요]] | | [[사과세요]] | ||
| IOS 앱개발 | | IOS 앱개발 | ||
| | | 테이블을 다이나믹하게 다루는 걸 배움 | ||
|- | |- | ||
| [[JS한방병원]] | | [[JS한방병원]] | ||
| JavaScript | | [[JavaScript]] | ||
| | | 폐강할 예정 (자바스크립트를 할 이유가 없어져서) | ||
|- | |- | ||
| [[ | | [[그치만 HTML은 프로그래밍언어라구욧!]] | ||
| 웹 | | 웹 | ||
| | | 자바스크립트 | ||
|- | |- | ||
| [[ | | [[블리는 어썸할거야]] | ||
| | | :블리는어썸할거야/진행내역 블리는 어썸할거야/진행 내역 | ||
| | | 지난 주에 실수표현 표준에 대해 공부하고, floating point도 나오길래 잠깐 다룸. | ||
|- | |- | ||
| | | :준비하자프로그래밍경시대회 준비하자 프로그래밍 경시대회 | ||
| 알고리즘 | | 알고리즘 | ||
| | | 이번 주 NPC때문에 휴강 | ||
|- | |- | ||
| [[ | | [[운?췌!]] | ||
| 운영체제 | | 운영체제 | ||
| | | 스터디룸 못 빌려서 못 함. | ||
|- | |- | ||
| [[NotKill | | :[[NotKill]] Not Kill | ||
| 코틀린 | | 코틀린 | ||
| | | 다다음주에 앱 만들 듯 | ||
|- | |- | ||
| [[알고리즘알고하냐]] | | [[알고리즘알고하냐]] | ||
| 알고리즘 | | 알고리즘 | ||
| | | 혼자 했음. | ||
|- | |- | ||
| [[Menu_Tab]] | | [[Menu_Tab]] | ||
| 텝스 | | 텝스 | ||
| | | DAILYEE로 이름 바꾸고 진행중임. | ||
|} | |} | ||
=== '''프로젝트''' === | === '''프로젝트''' === | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 74: | Line 176: | ||
| | | | ||
|- | |- | ||
| | | Robot_Study/OpenManipulator | ||
| Controller 코드 이해, 사용방법 파악 완료, init state까지 제작 | | Controller 코드 이해, 사용방법 파악 완료, init state까지 제작 | ||
|- | |- | ||
| | | 무제 | ||
| | | | ||
|} | |} | ||
== 활동 소식 == | == 활동 소식 == | ||
* "아무콘솔대잔치"로 대회명이 확정됨. | |||
** 나머지는 공지방에 나와있음. | |||
** 1:1 매칭을 위해 수요조사중. | |||
** 구글 폼에 한번씩 작성해주세요. | |||
** 멘토는 랜덤배정이지만 바뀔 수 있음. | |||
== Comment == | == Comment == | ||
* | * 310관 B312 선호합니다, 앞으로 여기서 했으면 좋겠습니다. - [[우준혁]] | ||
---- | ---- | ||
[[활동지도/2019]] | [[활동지도/2019]] | ||
Latest revision as of 00:34, 29 March 2026
2019.05.15 ZeroPage 정모
OMS
OMS 주자 : 24기 김정민 학우 - 봄이 좋냐?
제목 유래
왜 제목이 봄이 좋냐였나?
- 봄... 봄... Spring... Spring framework... (의식의 흐름)... 아무런 생각이 없어서.
그래서 스프링이 뭐죠?
Spring 프레임워크란? 말 그대로 프레임워크, 서버 프로그램을 만드는 프레임워크. 어 그럼 서버는 뭐죠? 뒤에서 설명
스프링의 특징
Spring의 가장 큰 특징 두개
- DI (의존성 주입)
- AOP (관점 지향 프로그래밍)
오른쪽 로고 친숙하죠? ㅎ
근데 프레임워크가 뭐죠?
Framework란? 뼈대, 골격, 틀 이런 뜻. Library랑 다르다.
- Library = 필요한 기능을 짜둔 것
- Framework = 이리 만들고 구현하라 강요하는, 즉 형태를 짜주는 것
프레임워크에서 중요한 점
Framework에선 IoC (제어 역전)이 중요하다.
- 라이브러리를 쓸땐 여러분의 코드가 라이브러리를 부른다.
- 프레임워크를 쓸땐 프레임워크가 여러분의 코드를 부른다.
그래서 앞서 말한 서버가 뭐죠?
저도 몰라요 그러니 예시를 들어서 설명할께요.
Client-Server 모델 예시
네이버를 접속하면 네이버가 나오죠? 이 네이버, html파일을 전송해주는 애는? 서버 (회장님 질문: 프로그래밍 언어인가요?) 아니에요~
인프라 모형 예시
그림 : Presentiation Layer > Application Layer > Data Layer 여러분이 보는 거 있고 그 밑에 그걸 주는 서버 있고 그 밑에 데이터 주는 서버 있고 스프링은 중간을 만들게 해주는 프레임워크다~ 이 말이야!
다시 설명해드리죠
브라우저(아닐 수도 있지만)가 요청을 하면 html을 보내주는 애가 서버에요. 이 요청은 다양해요. 로그인 요청일 수도 있겠죠. 이런 다양한 요청을 받아주고 결과물을 html로 던저주는 게 스프링이고요 html이 아니라 json같은 다른 형식일 수도 있어요.
근데 사실 앞서 말씀드린 것들은
스프링만의 특징이 아니에요. django, flask 같은 애들도 이런 특징을 가지고 있습니다. 클론이요? 저도 모르는데 넣어봤어요. 익스프레스? 까먹고 못 넣었네요. 암튼 이런 다양한 프레임워크들이 있어요.
그래서 스프링은 뭐가 다르죠?
두가지가 있어요.
Dependenc Injection
프레임워크가 니 코드를 부르지. 니 코드가 프레임워크를 부르지 않아요. IoC랑 혼동되기도 하는 개념이에요. 완전히 분리되지 않은 개념이라서...
각 class를 bean object로 구성하여 Container가 관리합니다. 그러면 bean들끼리는 서로 몰라도 되는, 결합도를 낮추는 거에요. 이것을 의존성을 주입한다고 말해요.
어떻게?
Request가 온다 -> 디스패쳐 서블렛이 핸들러를 볼러용 -> 핸들러를 매핑해요. -> 핸들러가 컨트롤러를 불러용 -> 뷰 리솔버가 뷰를 볼러요. ... 이렇게 간접적으로 이어지게 하는거에요.
잘 모르겠죠? 저도 잘 몰라요. 구현 해봐야 아는데
AOP(Aspect-Oriented Programming)
이거 쓴다고 OOP를 못 쓰는 건 아니에요. 하나의 구현방식이라 생각하시면 되고요. 코드의 중복을 방지해주는 거에요.
개념
join point : 프로그램 실행 중 어떤 시점에서 실행할지 지정해주는 것, Spring에선 method call의 시작점, before? after? 이런식을 구현해요. Advice : 특정 join point에서 수행되는 동작. 예를 들어 세션으로 관리자가 맞는지 검사한다던지... 다양한 게 있겠죠? 그런식으로 권한 관리, 로깅 이런걸 할 수 있게.
@Aspect와 @Around를 써서 무언가를 할 수도 있어요.
Annotation
키워드들을 이용해서 자동으로 bean 설정을 해주는거에요. @Autowired를 넣으면 이걸 감지해서 자동으로 주입해주는... 뭐 이런 기능 xml이랑 겹치면 헷갈리면 하나만 쓰시든 기준을 세우든 하시면 됩니다.
까먹은 것
Spring은 원래 Enterprise용이에요. 스프링을 쓴다면 팀프로젝트일 가능성이 높지 않을까~ 그래서 언제 어노테이션을 쓰지 이건 어떻게 구현할지 미리 합의를 해두시고 시작하시는 게 좋을 겁니다.
기타
ORM, Spring Security, Spring Boot 있고요 스프링의 장점은 한글자료가 많다는 겁니다. 왜나고요? 정부에서 자바개발자를 찍어낼때 스프링을 가르쳤기 때문에... 학습하기 쉬울 수도 있어요. 물론 영어보단 낫다는 느낌입니다.
Q&A
Q. 스프링을 어떻게 시작하면 좋을까요? A. 부트로 시작하세요. "스프링 따라하기" 이런거 치면 자료 많아요.
OMS 다음 주자
송정우의 "HTML 하는 사람은 프로그래머일까요?"
스터디 및 프로젝트
- 스터디 활동 공유
스터디
| 스터디 이름 | 분야 | |
| Shaprest++ | C++ | 19, 18강 했음. |
| 앙기모와 머머리 | 모의투자 | 다음 주부터 주식 API 다룬다고 들었음. |
| J를기다리며 | 머신러닝 | 텐서플로우를 시작할 것임. |
| 사과세요 | IOS 앱개발 | 테이블을 다이나믹하게 다루는 걸 배움 |
| JS한방병원 | JavaScript | 폐강할 예정 (자바스크립트를 할 이유가 없어져서) |
| 그치만 HTML은 프로그래밍언어라구욧! | 웹 | 자바스크립트 |
| 블리는 어썸할거야 | :블리는어썸할거야/진행내역 블리는 어썸할거야/진행 내역 | 지난 주에 실수표현 표준에 대해 공부하고, floating point도 나오길래 잠깐 다룸. |
| :준비하자프로그래밍경시대회 준비하자 프로그래밍 경시대회 | 알고리즘 | 이번 주 NPC때문에 휴강 |
| 운?췌! | 운영체제 | 스터디룸 못 빌려서 못 함. |
| :NotKill Not Kill | 코틀린 | 다다음주에 앱 만들 듯 |
| 알고리즘알고하냐 | 알고리즘 | 혼자 했음. |
| Menu_Tab | 텝스 | DAILYEE로 이름 바꾸고 진행중임. |
프로젝트
| 프로젝트 | 진행 사항 |
| [caucsenotice] | |
| Robot_Study/OpenManipulator | Controller 코드 이해, 사용방법 파악 완료, init state까지 제작 |
| 무제 |
활동 소식
- "아무콘솔대잔치"로 대회명이 확정됨.
- 나머지는 공지방에 나와있음.
- 1:1 매칭을 위해 수요조사중.
- 구글 폼에 한번씩 작성해주세요.
- 멘토는 랜덤배정이지만 바뀔 수 있음.
Comment
- 310관 B312 선호합니다, 앞으로 여기서 했으면 좋겠습니다. - 우준혁