728x90
반응형

2023/10 7

스프링 입문 - 회원 도메인과 리포지토리 만들기

우선, 도메인을 구현할 패키지인 hello.hellospring.domain 패키지를 만들자. domain 패키지 하위에, Member 클래스를 만들자. 그리고 위와 같이 도메인 역할을 할 Member 클래스를 작성해 주자. 비즈니스 요구사항에서, 데이터는 회원ID, 이름 2가지였다. 그 역할을 해줄 id, name 필드를 선언하고 getter setter를 작성한 것이다. 다음은 repository 패키지를 만들어 주자. repository 패키지 하위에, MemberRepository "인터페이스"를 만들자. 위와 같이 인터페이스를 작성해주자. 여기서 구현을 할 수는 없고, 추상 메소드 4개를 선언했다. 이것은 MemoryMemberRepository라는 구현 클래스에서 구현할 것이다. reposit..

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

본격적으로 개발을 하기 앞서, 우선 비즈니스 요구사항을 정리해야 한다. 복잡한 비즈니스 로직을 배우는 것이 아닌, 스프링이 어떻게 돌아가는지를 이해하기 위함이므로 가장 쉬운 비즈니스 요구사항을 택할 것이다. 일반적인 웹 애플리케이션 계층 구조는 이렇다. 컨트롤러: 웹 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
728x90
반응형