Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

정모/2019.5.15: Difference between revisions

From ZeroWiki
imported>wjh0470
({CREATE})
 
(Repair MoniWiki formatting after migration)
 
(14 intermediate revisions by 5 users not shown)
Line 1: Line 1:
= '''2019.05.08 ZeroPage 정모''' =
= '''2019.05.15 [[ZeroPage]] 정모''' =


__TOC__
__TOC__
      
      
== OMS ==
== OMS ==
OMS 박관빈 : 블로그 쓰기
OMS 주자 : 24기 [[김정민]] 학우 - 봄이 좋냐?
[https://m.blog.naver.com/PostList.nhn?permalink=permalink&blogId=bgb10&proxyReferer=http:%2F%2Fm.blog.naver.com%2FSectionNicknameNIdSearch.nhn%3FsearchValue%3D%25EC%259E%2590%25EA%25B8%25B0%25EA%25B0%259C%25EB%25B0%259C%25EC%259E%2590 참고]


동기
=== 제목 유래 ===
# 수능 이후 심심해서
왜 제목이 봄이 좋냐였나?
# 자신을 되돌아보기?
: 봄... 봄... Spring... Spring framework... (의식의 흐름)... 아무런 생각이 없어서.


Q. 자신을 되돌아보기(단점)
=== 그래서 스프링이 뭐죠? ===
Q. 자신을 되돌아보기(장점)
Spring 프레임워크란?
=> 블로그를 통해서 자신을 되돌아 보며 알게됨
말 그대로 프레임워크, 서버 프로그램을 만드는 프레임워크.
어 그럼 서버는 뭐죠? 뒤에서 설명


# 생각과 자기 이해
=== 스프링의 특징 ===
* 나는 어떤 사람일까?
Spring의 가장 큰 특징 두개
* 자신에 솔직해짐 (내 감정과 생각을 알게됨)
* DI (의존성 주입)
* AOP (관점 지향 프로그래밍)
오른쪽 로고 친숙하죠? ㅎ


# 스스로의 반성 Ex)
=== 근데 프레임워크가 뭐죠? ===
* 주관이 없다, 자기 기만, 비루함,,,
Framework란?
뼈대, 골격, 틀 이런 뜻. Library랑 다르다.
* Library = 필요한 기능을 짜둔 것
* Framework = 이리 만들고 구현하라 강요하는, 즉 형태를 짜주는 것


# 실제 작성했던 예시
==== 프레임워크에서 중요한 점 ====
(개인적인 내용이라 비공개입니다. + 민하선배, 멋짐+1)
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 하는 사람은 프로그래머일까요?"


--
다음 OMS 주자 : 24기 [[김정민]] 학우 - 봄이 좋냐?
== 스터디 및 프로젝트 ==
== 스터디 및 프로젝트 ==


Line 52: Line 117:
| 스터디 이름
| 스터디 이름
| 분야
| 분야
| 진행 사항
|  
|-
|-
| [[Shaprest++]]
| [[Shaprest++]]
| C++
| C++
| 이번주 진행했습니다
| 19, 18강 했음.
|-
|-
| [[앙기모와 머머리]]
| [[앙기모와 머머리]]
| 모의투자
| 모의투자
| 내일 진행 예정
| 다음 주부터 주식 API 다룬다고 들었음.
|-
|-
| [[J를기다리며]]
| [[J를기다리며]]
| 머신러닝
| 머신러닝
| 오늘 진행 예정
| 텐서플로우를 시작할 것임.
|-
|-
| [[사과세요]]
| [[사과세요]]
| IOS 앱개발
| IOS 앱개발
| 이번주 진행 예정
| 테이블을 다이나믹하게 다루는 걸 배움
|-
|-
| [[JS한방병원]]
| [[JS한방병원]]
| JavaScript
| [[JavaScript]]
| 내일 예정
| 폐강할 예정 (자바스크립트를 이유가 없어져서)
|-
|-
| [[그치만%20HTML은%20프로그래밍언어라구욧%21 | 그치만 HTML은 프로그래밍언어라구욧!]]
| [[그치만 HTML은 프로그래밍언어라구욧!]]
| 웹
| 웹
| 다음 주에 예정
| 자바스크립트
|-
|-
| [[블리는%20어썸할거야 | 블리는 어썸할거야]]
| [[블리는 어썸할거야]]
| 어셈블리
| :블리는어썸할거야/진행내역 블리는 어썸할거야/진행 내역
| 이번 주에 할 예정
| 지난 주에 실수표현 표준에 대해 공부하고, floating point도 나오길래 잠깐 다룸.
|-
|-
| [[준비하자프로그래밍경시대회|준비하자 프로그래밍 경시대회]]
| :준비하자프로그래밍경시대회 준비하자 프로그래밍 경시대회
| 알고리즘
| 알고리즘
| BFS, DFS 진행
| 이번 주 NPC때문에 휴강
|-
|-
| [[운%3F췌%21 | 운?췌!]]
| [[운?췌!]]
| 운영체제
| 운영체제
| 내일 할 예정
| 스터디룸 못 빌려서 못 함.
|-
|-
| [[NotKill|Not Kill]]
| :[[NotKill]] Not Kill
| 코틀린
| 코틀린
| 월요일 휴강으로 인해 이번 주 금요일 예정
| 다다음주에 앱 만들 듯
|-
|-
| [[알고리즘알고하냐]]
| [[알고리즘알고하냐]]
| 알고리즘
| 알고리즘
|  
| 혼자 했음.
|-
|-
| [[Menu_Tab]]
| [[Menu_Tab]]
| 텝스
| 텝스
|  
| DAILYEE로 이름 바꾸고 진행중임.
|}
|}
=== '''프로젝트''' ===
=== '''프로젝트''' ===
{| class="wikitable"
{| class="wikitable"
Line 110: Line 174:
|-
|-
| [caucsenotice]
| [caucsenotice]
| 완료
|  
|-
|-
| [[Robot_Study/OpenManipulator]]
| Robot_Study/OpenManipulator
| Controller 예제 코드 분석 중에 있습니다.
| Controller 코드 이해, 사용방법 파악 완료, init state까지 제작
|-
|-
| [[무제]]
| 무제
|  
|  
|}
|}


== 활동 소식 ==
== 활동 소식 ==
* "아무콘솔대잔치"로 대회명이 확정됨.
** 나머지는 공지방에 나와있음.
** 1:1 매칭을 위해 수요조사중.
** 구글 폼에 한번씩 작성해주세요.
** 멘토는 랜덤배정이지만 바뀔 수 있음.


* '''행사 계획''' :
    1) 해커톤, 확정 날짜 5월 31~ 6월 1일 , 장소 310 b3
    2) 해커톤 주제 : 콘솔 활용한 창의성 중심 대회
* '''ZP 정회원 신청 받습니다'''
    1) zeropage.org 등업게시판 참조하세요
== Comment ==
== Comment ==
* 추가 제안입니다만, git-hub 아이디를 만들어서 OMS 발표자료를 남긴다던가, 여러가지 행사자료(데빌스캠프,,,)를 공유하는건 어떤가요? - [[우준혁]]
* 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 선호합니다, 앞으로 여기서 했으면 좋겠습니다. - 우준혁

활동지도/2019