728x90
반응형

분류 전체보기 322

스프링 입문 - 비즈니스 요구사항 정리

본격적으로 개발을 하기 앞서, 우선 비즈니스 요구사항을 정리해야 한다. 복잡한 비즈니스 로직을 배우는 것이 아닌, 스프링이 어떻게 돌아가는지를 이해하기 위함이므로 가장 쉬운 비즈니스 요구사항을 택할 것이다. 일반적인 웹 애플리케이션 계층 구조는 이렇다. 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현. 도메인을 이용한 서비스, 기능, 로직 그 자체를 의미 리포지토리(저장소): 데이터베이스에 접근하고 도메인 객체를 DB에 저장하고 관리함. 도메인: 비즈니스 도메인 객체. 회원, 주문, 쿠폰 등등. DB에 저장되고 서비스로써 이용될 것들. 비즈니스 요구사항 데이터: 회원ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소가 선정되지 않은 상태라는 가정 ( 어떤 DB를 사용할지 정해..

스프링 입문 - API

정적 컨텐츠를 제외하면, 웹 브라우저(클라이언트)에게 데이터를 전송하는 방법은 크게 2가지가 있다. 첫번째가 MVC(Model, View, Controller), 두번째가 API이다. MVC 방식은 html로 View를 만들고 템플릿 엔진으로 렌더링하여 전송한다고 하면, API 방식은 View를 사용하지 않고, 데이터 그 자체 또는 객체를 렌더링 없이 그대로 전송한다. 우선 API 방식을 실습해보기 위해, 컨트롤러를 열어주자. 컨트롤러 맨 아래쪽에, helloString 메소드를 생성하자. 여기서 중요한건 @ResponseBody 어노테이션이다. ResponseBody는 데이터를 http response의 body부분에 직접 넣어주겠다는 뜻이다. 리턴값은 "hello " + name 이므로, 웹브라우저엔..

스프링 입문 - MVC와 템플릿 엔진

MVC : Model, View, Controller Model : 데이터나 비즈니스 로직을 나타냄, 사용자 정보, 주문 정보 등 모두 모델이라고 할 수 있다. View : 사용자에게 데이터를 출력하고 인터페이스를 생성한다. Controller : 모델에 필요한 작업을 수행하고, 그것을 뷰로 전달하여 사용자에게 출력하도록 한다. 컨트롤러인 HelloController 파일을 열자. 새로운 페이지를 만들것이다. HelloController 파일에 코드를 추가하자. 기존 코드에 아래쪽 helloMvc 메소드 부분을 추가하면 된다. 웹에서 hello-mvc 주소로 접속하면 해당 코드가 실행된다. "name" 이라는 이름의 파라미터에 사용자로부터 입력값을 받아야 한다. 또한 View에, 입력받은 "name"값을..

Java 클래스의 구성 (필드/생성자/메소드)

클래스는 객체를 만들기 위한 "설계도"와 같다. 클래스라는 설계도를 이용해서 "객체"를 만들 수 있다. 클래스는 필드, 생성자, 메소드로 구성되어 있다. 이것이 "Ysk" 클래스이다. 4행의 int x는 필드이다. 필드는 객체의 데이터를 저장하는 역할을 한다. 또한 반드시 클래스 레벨에서 선언되어야 한다. (생성자, 메소드 등의 실행블록 안에 들어가 있으면 안 된다) 필드는 객체 내부의 생성자, 메소드에서 호출하여 사용할 수 있고, 객체 외부에서도 사용할 수 있다. 필드는 일반적인 변수(로컬 변수)와 비슷하고, 그렇게 이해해도 문제는 없지만 분명한 차이가 존재한다. 로컬 변수는 실행블록 내(메소드 내, 생성자 내 등등)에서만 사용이 가능하지만, 필드는 해당 객체의 모든 생성자, 메소드, 그리고 객체 외부..

Development/Java 2023.10.15

Java 자유로운 버전 변경 방법/ 다수 버전 병행 사용법/ 버전 확인

나는 Java(JDK) 11, 17버전을 함께 사용중이다. 이 글에서는 한 컴퓨터에 다른 버전의 자바가 2개 이상 설치되어 있다는 가정 하에 설명하겠다. 우선 현재 사용중인 Java 버전을 확인해 보자. java -version cmd 또는 powershell을 실행하여, 해당 명령어를 입력하면 현재 사용중인 버전을 확인할 수 있다. 내 컴퓨터는 java17 버전을 사용하고 있는 상태이다. 환경 변수 편집을 실행한다. 윈도우 검색란에 "환경 변수"를 입력해도 되고, 제어판에서 직접 찾아가도 된다. 이러한 창이 나올 것이다. 오른쪽 아래 환경 변수를 클릭하자. 다양한 환경변수들이 존재한다. 아래쪽 시스템 변수 부분에서, JAVA_HOME을 선택하여 편집을 누른다. 만약 존재하지 않는다면, 새로 만들기를 눌..

Development/Java 2023.10.15

[2023.10.07 3회] 정보처리기사 실기 후기 feat.구조체 -> 문제

2일 전 10월 7일에 정보처리기사 실기시험을 치렀다. 실기 준비기간은 3주였고, SQLD일정이 끝나자 마자 공부를 시작했다. 준비 기간이 그리 길진 않지만, 보안기사 준비할 때 못지 않게 열심히 준비했다. 아니 오히려 일일 공부시간은 더 길었던 거 같기도 하다.. 하루에 거의 10시간, 12시간씩 준비했다. 필기를 기출뺑뺑이로 합격했던 터라 공부할 양이 많았다. 보안기사 있는 사람은 처리기사 아주 쉬울거다 라는 말도 많이 들어서 가벼운 마음으로 공부에 들어갔는데, 딱 예상했던 정도의 난이도로 엄청나게 어렵진 않았던 것 같다. 난 시나공 교재로 준비했다. 근데 이것도 나름 기사시험이라고 범위가 꽤나 넓고.. 생각보다 외울것도 많아서 시간투자를 많이 해야 했다. 준비기간 마지막에 기출문제를 과거 ~ 최신 ..

자유 2023.10.09

제50회 SQLD(SQL개발자) 합격 후기 [노랭이, 이기적]

계획했던 대로 SQLD 자격증을 취득했다. SQLD는 필기시험 한번만 치르면 자격증이 발급되며, 합격률은 약 50%정도를 유지하고 있다. 데이터베이스와 sql문법에 대한 자격증이며, 가지고 있으면 DB에 대한 기본적인 이해와 쿼리 해석정도는 할 수 있다는 방증이 될 수 있겠다. 공부하는 과정은 정말 매우 끔찍했지만.. 정작 시험은 쉬웠던 신기한 자격증이다. 공부기간은 약 3주정도였고, 책은 이기적 SQLD, SQL 자격검정 실전문제(노랭이)를 활용했다. 난 학교에서 데이터베이스 수업을 들은 적이 있어서 기본적인 이론과 기초 쿼리정도는 알고 있는 상태였고, ( 키의 개념, 무결성제약, select from where 기본문법 등등 ) SQLD의 합격률도 꽤 높아서 만만하게 봤다가 꽤 고생을 했다. 이기적S..

업적 2023.09.27

리눅스마스터 1급 뒤늦은 합격 후기, 그리고 쓸모에 관한 고찰

리눅스마스터 1급은 나의 첫 자격증이다. 노래를 포기하고 보안 공부를 본격적으로 시작함과 거의 동시에 취득했다. 이걸 딴지 1년이 훌쩍 넘었는데, 합격 후기를 써야지 써야지 하다가 뒤늦게 쓴다. 다만 시간이 오래 지났기 때문에 자격증 자체의 공부방법 보다는, 이게 실질적으로 도움이 되었는지 어땠는지를 중심으로 작성하려 한다. 이때 나의 기초지식, 베이스 지식은 아예. 일절 없었다. 파이썬으로 Hello World! 출력해본게 끝인 아예 쌩초보였다. 난 IT공부의 첫발을 리눅스로 떼었다. 처음부터 리눅스마스터를 딸 생각은 없었다. 다만 아무것도 모르는 초보였던 나에게 있어서 "리눅스"는 굉장히 멋있어 보였다. CLI(TUI)기반의 검은 화면에 알 수 없는 명령어를 입력하는 것이 너무 멋져서, 무작정 우분투..

업적 2023.09.18

스프링 입문 - 정적 컨텐츠

정적 컨텐츠는 MVC등 동적 기능을 사용하지 않고 html코드만을 그대로 출력하는 컨텐츠를 의미한다. 정적 컨텐츠를 구현하는 방법은 매우 간단하다. resources:static/hello-static.html 파일을 생성한다. 간단한 html코드를 입력한다. 나는 강의자료와 똑같이 입력했다. 스프링을 재가동해준다. 정적 페이지로 접근하는 방법은 간단하다. localhost:8080/hello-static.html 경로로 접속하면, 방금 작성한 페이지가 그대로 출력된다. 어떠한 동적 기능도 없는, html코드를 그대로 반영한 정적 페이지이다. 정적 페이지는 이렇게 매우 간단하게 생성할 수 있다. 우리가 hello-static.html 경로를 입력하면 스프링은 가장 먼저 hello-static.html의 ..

스프링 입문 - 빌드하고 실행하기

만들어진 웹서버를 배포할 수 있는 간단한 방법이 있다. 빌드하고, 빌드된 파일을 실행만 하면 어디에서든 웹서버를 가동시킬 수 있는 것이다. 먼저 스프링이 설치된(프로젝트가 설치된) 디렉터리로 온다. 그러면 이런 파일과 디렉터리들이 있다. 이 화면은 인텔리제이에서 실행한 터미널이고, git bash가 연동되어 있다. 강사님도 git bash를 사용하시고, 나도 리눅스 환경이 편해서 git bash를 인텔리제이 터미널에 연동했다. 연동 방법은 간단하니 구글링하면 쉽게 따라할 수 있다. 참고로 git bash는 리눅스 명령어를 따른다. ./gradlew build 해당 스프링이 설치된 위치에서, ./gradlew build 명령어를 입력한다. 그러면 이렇게 빌드가 시작된다. 만약 빌드가 잘 되지 않으면, ./..

728x90
반응형