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

정모/2019.5.22

From ZeroWiki
Revision as of 09:38, 22 May 2019 by 172.18.0.4 (talk)

2019.05.15 ZeroPage 정모

OMS

OMS 주자 : 송정우 학우 - "HTML 하는 사람은 프로그래머일까요?"


= 왜이런 주제가 나왔을까요?

HTML은 프로그래밍 언어가 아니다. 라는 이야기가 훨씬 많다. ZP 내에서도 항상 나오던 이슈였다. 우리의 주제는 HTML 하는 사람은 프로그래머일까요? HTML을 하는사람을 프로그래머라고 할 수 있을까?

= 왜이런 주제가 나왔을까요?

HTML은 프로그래밍 언어가 아니다. 라는 이야기가 훨씬 많다. ZP 내에서도 항상 나오던 이슈였다. 우리의 주제는 HTML 하는 사람은 프로그래머일까요? HTML을 하는사람을 프로그래머라고 할 수 있을까?

왜 이 주제를 선택했을까요?

HTML은 프로그래밍 언어라고 보기 힘들다. 그러나 HTML을 하는 사람은 프로그래머라고'불릴만하다'라고 생각한다. 본인도 개발을 시작한지 만 2년 밖에 되지 않았다 웹사이트에 접속해보지 않은 사람이 없을 가능성이 매우매우 높다

= 왜이런 주제가 나왔을까요?

HTML은 프로그래밍 언어가 아니다. 라는 이야기가 훨씬 많다. ZP 내에서도 항상 나오던 이슈였다. 우리의 주제는 HTML 하는 사람은 프로그래머일까요? HTML을 하는사람을 프로그래머라고 할 수 있을까?

왜 이 주제를 선택했을까요?

HTML은 프로그래밍 언어라고 보기 힘들다. 그러나 HTML을 하는 사람은 프로그래머라고'불릴만하다'라고 생각한다. 본인도 개발을 시작한지 만 2년 밖에 되지 않았다 웹사이트에 접속해보지 않은 사람이 없을 가능성이 매우매우 높다

쉽게 말하는 웹

웹을 쉽게 생각하는 사람이 많다. 그런데 본인은 웹은 어렵다고 생각하고 잘짜기도 어렵다고 생각함

쉽게 말하는 웹

웹을 쉽게 생각하는 사람이 많다. 그런데 본인은 웹은 어렵다고 생각하고 잘짜기도 어렵다고 생각함

스프링의 특징

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 하는 사람은 프로그래머일까요?"

스터디 및 프로젝트

  • 스터디 활동 공유

스터디

스터디 이름 분야 19, 18강 했음.
Shaprest++ C++
앙기모와 머머리 모의투자 다음 주부터 주식 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