프로그래밍 80

Spring boot실습-OSI통신

알로하 통신(알로하 프로토콜) 하와이에서 통신기술이 생겨날 때 섬끼리 선을 연결하기가 어려워서 통신을 주파수로 통신하기 시작했다. 불특정 다수에게 주파수를 보내는 통신이 브로드 캐스팅기술이다. 불특정 다수에게 주파수를 다 전달하는 것(와이파이) 보안이 별로 좋지 않다. 신호가 섞이면 잡음이 생긴다. 이때 컴퓨터는 두 개의 같은 신호를 구별하기 힘들어진다. 그래서 동시에 오는 여러 가지 신호를 구분하기 위해서는 원하는 주파수의 데이터를 받은 다음 나머지 주파수는 누락시키는 방법이 있는데 이 방법은 너무 오래 걸린다. 한쪽에서 통신을 하게 되면 다른 사람은 통신을 하지 못하게 되기 때문이다 그래서 브로드캐스팅으로 보낼 때 데이터를 분할을 해서 분할된 데이터에 해더를 붙인다. 그래서 복잡하게 얽혀서 쓰레기처럼..

Springboot 2021.06.28

Spring boot실습 DBMS연결

프로토콜: 약속 프로토콜에서의 약속은 대등한 관계에서 성립된다. http의 모든 것들은 프로토콜로 만들어져 있다. RFC문서라고 있다 서로 다른 프로토콜로 떨어져 있던 프로토콜을 폭넓은 통신을 위해서 서로 협의하에 프로토콜을 제정의해서 프로토콜을 합친 것임 이것이 모든 인터넷의 시작이다. 이 프로토콜들이 모이고 모여서 만들어진 게 WWW이다. 월드와이드 웹. 프로토콜로 만들어진 세상 인터페이스와 다른 점은 인터페이스는 누군가가 클라이언트가 어떠한 것을 사용하기 편하게끔 만들어주는 것(상하관계의 약속 ex) 리모콘, 자판기 버튼) 통신이 필요한 모든 데이터는 프로토콜이 없으면 쓰레기 데이터가 된다. 즉 서로 프로그램끼리 이해할 수 없어진다 그래서 상호간에 통신을 위해서는 프로토콜을 맞춰주는 작업이 바로 드..

Springboot 2021.06.25

Spring boot실습 톰켓의 내부

톰켓에 url 요청을 할 때 요청정보에 들어가는 정보는 누가 요청을 했는지 어떤 프로그램으로 요청했는지 등등에 대한 많은 정보들이 byte스트림으로 String타입이 들어온다. 이때 문자열 그대로 있으면 활용하기 어려우니까 변수에 담아주는 것이 효율적이다. 이때 많은 변수가 담겨있기 때문에 자바 변수를 클래스에 담아둔다 위와 같은 작업을 톰캣이 해준다. request객체와 response객채를 톰캣이 만들어서 자바에게 전달해준다. 그럼 자바 servelet에서 받아서 처리하는 것이다. 그래서 위 두 객체들에 접근하는 방법이 필요하다 의존성 주입 DI, 의존성 주입은 필요한 객체를 직접 생성하는 것이 아닌 외부로부터 필요한 객체를 받아서 사용하는 것이다. 이를 통해 객체 간의 결합도를 줄이고 코드의 재활용..

Springboot 2021.06.24

Spring boot/실습 response의 이해

컨포넌트 스캔 기준 이유: IOC컨테이너에 객체 등록 위치:com.cos.secondapp 스프링에서 IOC컨테이너는 어노테이션을 가지고 있는 java파일을 찾아내고 그 어노테이션의 주소가 있는 함수를 실행한다. POST방식으로 자원요청->디스패쳐가 실행돼서 요청을 가로챈다. -> IOC 스캔-> 해당 자원(View)을 가지고 있는 함수 호출 이때 함수에 매개변수가 있다고 한다면 이때 디스패처가 해당 요청 시 받은 요청 해더에 있는 컨텐트 타입과 데이터를 가지고 와서 해당 매개변수에 파싱 해서 주입시켜준다 함수가 실행되면서 매개변수를 주입시켜 주는 것이다 진짜 마법 같은 일이 스프링을 해내는 것이다. 만약에 해당 자원을 찾지 못했다면 null을 반환하는 것이다. response 응답할 때 관여하는 기능이..

Springboot 2021.06.23

Spring boot실습 FrontController 패턴의 이해!(MVC패턴)

FrontController 패턴 url 패턴은 자원을 디렉트로 찾는 모델 원 방식이다. 아피치(서버) 톰캣(was)이 하나의 서버를 실행하면 서버 안에 리소스(자원)가 있다. 이 리소스에 접근 시에 url방식을 사용하면 다이렉트로 주고받는다 이때 GET 방식으로 자원을 요청하면 응답 시에 text/html타입으로 응답해준다. 이때 웹 애플리케이션 서버(was)의 목적은 컴파일하는 것이다. java 관련된 파일을 요청할 때만 아파치가 아닌 톰캣이 일을 하는 것이다. 이때 자바 코드에 DB에 커넥션 코드가 있다고 가정을 해볼 때 모델 원방식의 단점을 볼 수 있다. -첫 번째로 파일마다 url을 연결해 줘야 하여서 일이 너무 많아진다. 파일마다 DB커넥션을 해야 하기 때문이다. 겹치는 코드가 많아짐 -두 번..

Springboot 2021.06.23

JSON에 대해서

JSON은 속성-값 또는 키-값이 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다. 인터넷에서 자료를 주고받을 때 그 자료를 표현하는 방법으로 알려져 있다. 컴퓨터 프로그램의 변숫값을 표현하는데 적합하기 때문 파일의 확장자는. json 컨텐트 타입은 application/json입니다. json의 자료형과 문법 기본 자료형 수 : c나 자바에서 8진수 16진수를 표현하는 방법은 지원되지 않는다 문자열 : 0개 이상의 유니코드 문자 들의연속, 문자열은 큰 따옴표로 구분하며 역슬래시 이스케이프 문법 지원 boolean: 참 거짓 값 배열: 순서가 있는 리스트 대괄호로 나타내며 요소는 쉼표로 구분 객체 : 순서가 없는 이름/값 쌍의 집합, 키가 문자..

Springboot 2021.06.23

Spring boot/ 실습(2) 데이터 요청의 기본 개념

저번 포스팅에서 이어가 보겠습니다. raw데이터는 일종에 원시 데이터를 전송한다고 생각하면 된다. 그리고 text타입을 줘서 hello를 put 할 것입니다. 저번 포스팅에서 post를 했을 때처럼 스프링에서 시도해봤지만 null이 뜨는 것을 볼 수 있다 application/x-www-form-urlencoded 타입은 오브젝트로 받는다. 그래서 key와 value값이 아니기 때문에 스프링이 자체적으로 파싱 해주지 않는 것이다. 결국 원형데이터를 받으려면 버퍼드 리더로 읽어야 하는데 스프링에선 어노테이션 하나만 알면 된다 이렇게 원시 데이터를 버퍼드 리더로 받을 수 있도록 어노테이션으로 jvm에게 알려주는 것이다. json으로 데이터를 보내보자 위와 같이 원형 그대로 나오는 것을 볼 수 있다. 위 데이..

Springboot 2021.06.22

STS/Springboot 개발 환경 설정

안녕하세요 바로 시작하겠습니다 저번 포스팅에서 다운로드한 후 exe파일의 바로가기를 바탕화면에 뒀었습니다. 실행을 하면 바로 경로를 설정하는 화면이 나오는데 적절한 곳에 설정하면 됩니다. 실행 후 경로 설정 첫 화면에서 사용하지 않는 탭들은 제거를 하고 좀 더 깔끔한 환경에서 개발을 할 수 있도록 합니다. 일단 모든 프로그래밍 시작의 국 룰인 helloworld 출력해본다. 일단 먼저 알고 가야 할 사항중 하나가 스프링에는 웹 개발 환경을 자체적으로 제공하지 않습니다. 스프링에 다이내믹 프로젝트가(웹 개발 환경) 없는 이유 최근 서버는 데이터를 리턴한다. 하지만 대부분의 현 프로그램들이 html을 리턴하는 방식으로 사용하기 때문에 웹 개발을 하기 위해선 새로운 플러그인을 다운로드하아야 한다 enterpr..

Springboot 2021.06.21

STS 툴 설치를 해보자

안녕하세요 드디어 Spring tool suite 프레임워크를 배우게 됐습니다. 일단 설치를 해야겠죠? jar => 패키지 (소스파일)인데 main메서드가 없는 실행되지 않는 파일 패키지들이 구조화가 돼서 다 약속이 돼있는 틀이 정의된 것들을 '프레임 워크' exe:윈도 운영체제가 이해할 수 있는 확장자 -jar 뒤에 sp만 누르고 tab키를 누르면 자동완성 enter 누르면 자동 설치 이제 이 exe실행파일을 좀 더 찾아가기 쉽게 바탕화면에 바로가기를 만들어 줬습니다. 그리고 정말 중요한 포인트는 어디에 어떤 것들이 있는지 한눈에 알 수 있게 폴더들을 정리하는 것입니다. 그냥 막 다운로드만 하고 사용만 하다 보면 언젠가 쓰레기 더미처럼 원하는 툴들을 찾아야 하는 상황에서 곤란해질 수 있기 때문에 정리하..

Springboot 2021.06.21

안드로이드 앱 프로그래밍 안드로이드 스튜디오[리니어 레이아웃 활용해서 간단한 어플 만들기]

오늘은 저번 레이아웃 포스팅에 이어어서 간단한 어플을 도전해보려고 합니다! 오늘 만들어볼 레이아웃인데요 만약에 사용자가 아랫쪽 화살표를 누른다면 고양이 사진이 아래로 이동하는 것처럼 보이는 그런 어플을 만들어 보려고 합니다.! Component Tree값을 convert veiw 를 사용해서 LinearLayout에 vertical로 설정을 해주시고 하단에 팔레트 탭을 이용해서 이미지를 넣을 리니어 레이아웃을 추가해 주세요 그리고 버튼을 넣을 리니어 레이아웃은 가로로 버튼이 정렬되니 horizontal로 해주시면 되겠죠? 위 사진과 같이 완성을 하기위해선 일단 기본 레이아웃 배치부터 해야 합니다 한 번에 저런 화면이 나오는 것이 아니니 주의해 주세요 그리고 이미지를 추가하실 때는 res/drawable에..