U E D R , A S I H C RSS

정모/2019.5.15

1.1. OMS

OMS 주자 : 24기 김정민 학우 - 봄이 좋냐?

1.1.1. 제목 유래

왜 제목이 봄이 좋냐였나?
: 봄... 봄... Spring... Spring framework... (의식의 흐름)... 아무런 생각이 없어서.

1.1.2. 그래서 스프링이 뭐죠?

Spring 프레임워크란?
말 그대로 프레임워크, 서버 프로그램을 만드는 프레임워크.
어 그럼 서버는 뭐죠? 뒤에서 설명

1.1.3. 스프링의 특징

Spring의 가장 큰 특징 두개
* DI (의존성 주입)
* AOP (관점 지향 프로그래밍)
오른쪽 로고 친숙하죠? ㅎ

1.1.4. 근데 프레임워크가 뭐죠?

Framework란?
뼈대, 골격, 틀 이런 뜻. Library랑 다르다.
* Library = 필요한 기능을 짜둔 것
* Framework = 이리 만들고 구현하라 강요하는, 즉 형태를 짜주는 것

1.1.4.1. 프레임워크에서 중요한 점

Framework에선 IoC (제어 역전)이 중요하다.
* 라이브러리를 쓸땐 여러분의 코드가 라이브러리를 부른다.
* 프레임워크를 쓸땐 프레임워크가 여러분의 코드를 부른다.

1.1.5. 그래서 앞서 말한 서버가 뭐죠?

저도 몰라요
그러니 예시를 들어서 설명할께요.

1.1.5.1. Client-Server 모델 예시

네이버를 접속하면 네이버가 나오죠?
이 네이버, html파일을 전송해주는 애는? 서버
(회장님 질문: 프로그래밍 언어인가요?)
아니에요~

1.1.5.2. 인프라 모형 예시

그림 : Presentiation Layer > Application Layer > Data Layer
여러분이 보는 거 있고 그 밑에 그걸 주는 서버 있고 그 밑에 데이터 주는 서버 있고
스프링은 중간을 만들게 해주는 프레임워크다~ 이 말이야!

1.1.5.3. 다시 설명해드리죠

브라우저(아닐 수도 있지만)가 요청을 하면 html을 보내주는 애가 서버에요.
이 요청은 다양해요. 로그인 요청일 수도 있겠죠.
이런 다양한 요청을 받아주고 결과물을 html로 던저주는 게 스프링이고요
html이 아니라 json같은 다른 형식일 수도 있어요.

1.1.6. 근데 사실 앞서 말씀드린 것들은

스프링만의 특징이 아니에요.
django, flask 같은 애들도 이런 특징을 가지고 있습니다.
클론이요? 저도 모르는데 넣어봤어요.
익스프레스? 까먹고 못 넣었네요.
암튼 이런 다양한 프레임워크들이 있어요.

1.1.7. 그래서 스프링은 뭐가 다르죠?

두가지가 있어요.

1.1.7.1. Dependenc Injection

프레임워크가 니 코드를 부르지. 니 코드가 프레임워크를 부르지 않아요.
IoC랑 혼동되기도 하는 개념이에요. 완전히 분리되지 않은 개념이라서...

각 class를 bean object로 구성하여 Container가 관리합니다.
그러면 bean들끼리는 서로 몰라도 되는, 결합도를 낮추는 거에요.
이것을 의존성을 주입한다고 말해요.

1.1.7.1.1. 어떻게?
Request가 온다
-> 디스패쳐 서블렛이 핸들러를 볼러용
-> 핸들러를 매핑해요.
-> 핸들러가 컨트롤러를 불러용
-> 뷰 리솔버가 뷰를 볼러요.
... 이렇게 간접적으로 이어지게 하는거에요.

잘 모르겠죠? 저도 잘 몰라요.
구현 해봐야 아는데

1.1.7.2. AOP(Aspect-Oriented Programming)

이거 쓴다고 OOP를 못 쓰는 건 아니에요. 하나의 구현방식이라 생각하시면 되고요.
코드의 중복을 방지해주는 거에요.

1.1.7.2.1. 개념

join point : 프로그램 실행 중 어떤 시점에서 실행할지 지정해주는 것, Spring에선 method call의 시작점, before? after? 이런식을 구현해요.
Advice : 특정 join point에서 수행되는 동작. 예를 들어 세션으로 관리자가 맞는지 검사한다던지... 다양한 게 있겠죠? 그런식으로 권한 관리, 로깅 이런걸 할 수 있게.

@Aspect와 @Around를 써서 무언가를 할 수도 있어요.

1.1.7.3. Annotation

키워드들을 이용해서 자동으로 bean 설정을 해주는거에요.
@Autowired를 넣으면 이걸 감지해서 자동으로 주입해주는... 뭐 이런 기능
xml이랑 겹치면 헷갈리면 하나만 쓰시든 기준을 세우든 하시면 됩니다.

1.1.8. 까먹은 것

Spring은 원래 Enterprise용이에요.
스프링을 쓴다면 팀프로젝트일 가능성이 높지 않을까~
그래서 언제 어노테이션을 쓰지 이건 어떻게 구현할지 미리 합의를 해두시고 시작하시는 게 좋을 겁니다.

1.1.9. 기타

ORM, Spring Security, Spring Boot 있고요 스프링의 장점은 한글자료가 많다는 겁니다.
왜나고요? 정부에서 자바개발자를 찍어낼때 스프링을 가르쳤기 때문에... 학습하기 쉬울 수도 있어요. 물론 영어보단 낫다는 느낌입니다.

1.1.10. Q&A

Q. 스프링을 어떻게 시작하면 좋을까요?
A. 부트로 시작하세요. "스프링 따라하기" 이런거 치면 자료 많아요.

1.1.11. OMS 다음 주자

송정우의 "HTML 하는 사람은 프로그래머일까요?"

1.2. 스터디 및 프로젝트


  • 스터디 활동 공유

1.2.1. 스터디

스터디 이름 분야
Shaprest++ C++ 19, 18강 했음.
기모와 머머리 모의투자 다음 주부터 주식 API 다룬다고 들었음.
J를기다리며 머신러닝 텐서플로우를 시작할 것임.
사과세요 IOS 앱개발 테이블을 다이나믹하게 다루는 걸 배움
JS한방병원 JavaScript 폐강할 예정 (자바스크립트를 할 이유가 없어져서)
그치만 HTML은 프로그래밍언어라구욧! 자바스크립트
리는 어썸할거야 리는 어썸할거야/진행 내역 지난 주에 실수표현 표준에 대해 공부하고, floating point도 나오길래 잠깐 다룸.
비하자 프로그래밍 경시대회 알고리즘 이번 주 NPC때문에 휴강
?췌! 운영체제 스터디룸 못 빌려서 못 함.
Not Kill 코틀린 다다음주에 앱 만들 듯
알고리즘알고하냐 알고리즘 혼자 했음.
Menu_Tab 텝스 DAILYEE로 이름 바꾸고 진행중임.

1.2.2. 프로젝트

프로젝트 진행 사항
caucsenotice
Robot_Study/OpenManipulator Controller 코드 이해, 사용방법 파악 완료, init state까지 제작

1.3. 활동 소식

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

1.4. Comment

  • 310관 B312 선호합니다, 앞으로 여기서 했으면 좋겠습니다. - 우준혁


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-16 14:07:58
Processing time 0.0489 sec