● 최신 글 ●

more

[SPRING] 스프링 프레임워크와 스프링 부트 차이점

스프링(프레임워크)와 스프링 부트의 차이점은 무엇일까? 스프링 프레임워크 스프링을 통상적으로 스프링 프레임워크라 한다. 스프링 프레임워크는 자바 생태계에서 가장 대중적으로 사용되는 개발 프로그램이다. 의존성 주입(DI)과 제어 역전(IOC) 등의 특징으로 결합도를 낮추는 방식으로 어플리케이션을 개발할 수 있다. 이러한 환경은 단위 테스트가 용이하기 때문에 보다 퀄리티 높은 개발이 가능하다. 다만, 최소한의 기능으로 Spring MVC를 사용하여 기본 프로젝트를 셋팅하는데 개발자에게 너무 많은 시간이 걸렸고 이러한 이슈를 해결한게 스프링 부트! 이다. 스프링 부트 스프링부트는 자동설정 기능을 이용하여 개발자에게 필요한 모든 내부 디펜던시를 관리해준다.

SPRING 2022.10.26 0

[1차] 문제2) 해밍 거리 구하기 - JAVA

[1차] 문제2) 해밍 거리 구하기 - JAVA - COS PRO 1급 기출문제 - Java (goorm.io) □ 문제설명 해밍 거리(Hamming distance)란 같은 길이를 가진 두 개의 문자열에서 같은 위치에 있지만 서로 다른 문자의 개수를 뜻합니다. 예를 들어 두 2진수 문자열이 "10010"과 "110"이라면, 먼저 두 문자열의 자릿수를 맞추기 위해 "110"의 앞에 0 두개를 채워 "00110"으로 만들어 줍니다. 두 2진수 문자열은 첫 번째와 세 번째 문자가 서로 다르므로 해밍 거리는 2입니다. `1`0`0`1 0 `0`0`1`1 0 두 2진수 문자열 binaryA, binaryB의 해밍 거리를 구하려 합니다. 이를 위해 다음과 같이 간단히 프로그램 구조를 작성했습니다 1단계. 길이가 ..

코딩테스트 2022.10.17 0

[COS PRO 1급 기출문제 - Java] 1-1 음식전문점 운영

[1차] 문제1) 음식전문점 운영 - JAVA - COS PRO 1급 기출문제 - Java (goorm.io) goorm 구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다. goorm.co ※ 프로그램 빈 칸 채우기 문제 □ 문제설명 배달음식 전문점 운영을 위해 다음과 같이 DeliveryStore 인터페이스와 PizzaStore, Food 클래스를 작성했습니다. * DeliveryStore : * DeliveryStore는 배달 음식점의 인터페이스입니다. * 배달 음식점은 set_order_list와 get_total_price 메소드를 구현해야 합니다. * set_order_list 메소드는 주문 메뉴의 리스트를 매개..

코딩테스트 2022.10.16 0

● 실습 및 프로젝트 ●

more

[1차 프로젝트] #6 헤더 메뉴 조건 설정하기 (로그인 하면 바뀌는 네비게이션바 만들기) JSTL

기존 메뉴와 사용자가 로그인 되었을 때 메뉴를 다르게 설정하고 싶다면, 조건을 설정하면 됩니다. 예를 들면, 로그인이 되기 전에는 login 아이콘이 보이고, 로그인이 되었을 때는 logout 아이콘이 보이는 상황이죠. 1. 변경할 목록 정하기 로그인 하지 않은 일반 유저에게 보이는 헤더입니다. 로그인 시 변경할 목록은 아이콘 변경 (로그아웃) 회원 닉네임 출력 마이페이지 생성 관리자 모드 생성 2. session에 로그인 정보 저장하기 로그인을 했을 때 일반 회원인지, 관리자 인지 구분하기 위해서 또 아이디와 닉네임 등을 화면에 출력하기 위해서는 session에 데이터를 저장해야 합니다. @RequestMapping("member/login_ok.do") public String member_login..

실습 2022.08.13 0

[1차 프로젝트] #5 테이블 생성 (직접 테이블 생성하기)

테이블 생성 프로젝트에 필요한 테이블을 직접 생성해보도록 할게요. (오라클 디벨로퍼를 사용하고 있습니다) CREATE TABLE camp_recipe_1( cr_rno NUMBER, cr_title VARCHAR2(100)CONSTRAINT cr_title_nn NOT NULL, cr_subtitle VARCHAR2(100) CONSTRAINT cr_subtitle_nn NOT NULL, cr_subject VARCHAR2(2000)CONSTRAINT cr_subject_nn NOT NULL, cr_poster VARCHAR2(1000)CONSTRAINT cr_poster_nn NOT NULL, cr_recipe CLOB CONSTRAINT cr_recipe_nn NOT NULL, cr_detail CL..

실습 2022.08.08 0

[1차 프로젝트] #4 데이터 크롤링 하는 법 (2주 남기고 프로젝트 주제가 바뀌었다)

큰일이다. 메인과 상세보기 페이지까지 완성된 마당에 프로젝트 주제가 변경되었다. 주제가 바뀌었다는건.... 데이터를 다시 수집해야 하고 템플릿도 다시 구해야하며 메인화면과 아이콘 등 처음부터 다시 시작함을 의미한다. 원래 주제는 자격증에 관한 교재와 강의 정보를 한 사이트에서 찾아볼 수 있도록 하는 것이었다. 하지만 해당 데이터는 정보만 제공하고 끝나는 정적인 분위기라서 주제를 변경하는 것이 어떻게냐고 하셨다. 한 달이 넘는 기간 중 2주 밖에 남지 않은 시점인데 (1/3 정도만 남은 상황) 여기서 주제를 변경한는 것은 쉬운 결정은 아니었다. 하지만 조원 모두 신중히 결정한 끝에 주제를 변경하는 것으로 결정했다. 단 하루만에 주제를 정하고, 템플릿까지 정했다. 확실히 두번째라 그런지 단합이 잘 되는 것을..

실습 2022.08.07 0

● Servlet/JSP ●

more

미완성[JSP] session과 cookie 총정리 (쿠키 사용법)

session 서버에 클라이언트의 일부 정보를 저장하고 있다. id, 장바구니 정보 등으로 사용된다. setAttribute(String key, Object obj) getAttribute() invalidate() removeAttribute() Cookie 클라이언트 브라우저 방문 기록을 저장한다. > 쿠키 생성 Cookie cookie=new Cookie(키, 값) 단, 문자열만 저장이 가능하다. > 기간 설정 > 저장 위치 > 브라우저 전송 response.addCookie() > 쿠키 읽기 Cookie[] cookies=request.getCookies() ==> 키 : getName() ==> 값 : getValue()

JSP(MVC) 2022.08.10 0

[JSP] 중요!!!! MVC 구조가 필요한 이유와 기능 + DAO, DTO, VO 구분

jsp를 배우면서 정말 머리 아팠던건 자바와 다양한 웹 언어들이 뒤죽박죽 섞여서 보기에도 작성하기에도 매우 불편하다는 거다. 오늘 다루려고 하는 MVC 구조는 바로 이와 같은 문제를 해결해준다. MVC 사용 목적 1. MVC 구조는 효율적인 업무를 위해 사용한다. JSP는 자바 소스 코딩 없이 태그형 프로그램만 제어하도록 하는 것을 목적으로 한다. JSP는 화면 출력을 위함이기 때문에 퍼블리셔와 프로트앤드의 작업공간인 반면 자바 코딩은 백엔드의 주 영역이다. 만약 JSP 문서에 자바 코딩을 함께 사용한다면 퍼블리셔는 본인의 영역 이상의 공부가 필요하다. 반대로 자바 소스 안에 CSS와 같은 웹 언어가 섞여있다면 백앤드 본인 영역 이상의 공부가 필요하다. 이처럼 하나의 문서에 여러 언어가 섞여있다면, 한 ..

JSP(MVC) 2022.07.26 0

미완성[JSP] request와 response 정리하기

우리가 웹 사이트를 이용한다고 할 때 우리는 클라이언트가 되고, 사이트를 제공하는 측은 서버가 된다. 클라이언트와 서버는 서로 소통하며 데이터를 주고 받는다. 주고받는 데이터는 무엇일까? 요청은 request와 session을 이용하며 응답은 HTML과 Cookie를 이용한다. 오늘은 웹의 소통 과정 중 핵심이라고 할 수 있는 request와 response에 대해 알아보도록 하자! request 는 사용자 요청 값이다. response 는 사용자 요청 값에 대한 응답이다. request getParameter() getParameterValues() getCharacterEncoding() getSession() getCookie() setAttribute() response 응답 정보, 화면 변경 응..

JSP(MVC) 2022.07.19 0

● DB ●

more

[DB/오라클] 프로시저 사용법 (스프링 기반의 댓글 CURD 프로시져로 구현하기 실습)

1차 프로젝트에서 구현했던 댓글 기능을 -> 2차 프로젝트에선 프로시저를 이용해 만들어 보려고 한다. 인터넷 찾아보면서 하는데, 정보도 많이 없고 설명도 어려워서 나중을 대비하여 기록해두어야겠다. 댓글 테이블 생성 JEJU_BREPLY_1_2 no : 댓글 번호 cno : 게시물 번호 id : 유저 아이디 name : 유저 이름 msg : 댓글 내용 regdate : 댓글 생성날짜 CREATE TABLE "HR"."JEJU_BREPLY_1_2" ( "NO" NUMBER, "CNO" NUMBER, "ID" VARCHAR2(20 BYTE), "NAME" VARCHAR2(34 BYTE) CONSTRAINT "JBR_NAME_NN" NOT NULL ENABLE, "MSG" CLOB CONSTRAINT "JBR_..

Oracle 2022.09.30 2

[DB] 자바에서 오라클 DB 드라이버 연결하는 법 (MySQL)

자바 이클립스에서 DataBase를 연결하는 방법에 대해서 다뤄보도록 하겠다. ( MySQL에 대한 정보도 제공되지만 오라클을 베이스로 작성된 글 입니다. ) 등록 순서 ◎ 표시는 필수적으로 작성되는 부분입니다. 1. DB 드라이버를 등록 ◎ 2. DB 연결 ◎ 2-1. SQL 문장 제작 ◎ 2-2. SQL 문장을 DB로 전송 ◎ 2-3. 입력값이 있는 경우에 값을 채움 2-4. SQL 문장 실행 요청 ◎ 2-5. 결과값을 VO에 담는다 ◎ 3. DB 닫기 ◎ 1. 오라클을 연결해주는 드라이버를 등록한다. ◎ [오라클] oracle.jdbc.driver.OracleDriver [MySQL] com.mysql.cj.jdbc.Driver 드라이버는 Class.forName(드라이버 자리) 이렇게 생성해주면 ..

Oracle 2022.08.10 0

● JAVA ●

more

[JAVA] 이클립스 톰캣 서버 추가 후 브라우저 출력 (맥 & 윈도우) Apache Server

팀 프로젝트가 본격적으로 시작되면서 이클립스를 새롭게 설치하게 되었습니다. 따라서 서버도 새로 연결해야 하는데요. jsp 파일을 실행하기 위해서는 서버가 연결되어 있어야 하는데 이클립스 서버 연결 과정을 공유 하고자 합니다. 톰캣을 다운받는 과정에서 맥(애플 )과 윈도우의 파일이 다르니 주의해주세요! apache 톰캣 다운로드 https://tomcat.apache.org/ Apache Tomcat® - Welcome! The Apache Tomcat® software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakart..

JAVA 2022.07.28 0

[JAVA/오라클] java 패키지명과 기능에 대하여 (controller, model, mapper, manager, vo, dao, )

com.wone.controller 공통으로 사용되는 기능적인 부분 @어노테이션을 이용해서 어떤 화면을 보여줄지 결정한다. 스프링에서는 컨트롤러가 감추어져 있기 때문에 직접 작업할 일은 없다. com.wone.Model @어노테이션을 사용하여 컨트롤러와 소통하는 부분 dao에서 생성한 메서드를 호출 하고 화면에 필요한 데이터를 전송한다. MVC구조에서는 dao 와 Model을 합쳐서 Model 이라고 부른다. com.wone.dao 데이터 베이스와 연결하는 부분 SQL 문장(mapper)을 전송하여 결과값을 저장하는(vo) 메서드를 생성한다. com.wone.vo 테이터 값을 받는 부분 데이터를 모으는 그릇과도 같은 역할이다. 모든 변수를 private로 저장 후에 getter / setter을 생성하여..

JAVA 2022.07.18 0

[JAVA/오라클] 시큐어 코딩 Getter Setter 사용법 (오라클 <> 자바 데이터형 맞추기)

웹에서 데이터를 가져올 때 변수를 사용한다. 이때 데이터 노출의 위험이 있기 때문에 변수를 감추는 과정이 필요하다. 이를 위해 자바에선 private 변수를 사용하여 캡슐화 하는데 이처럼 보안상의 이유로 코드를 감추는 과정을 시큐어 코딩이라고 한다. 시큐어 코딩의 사전적 의미는 아래와 같다. 개발하는 소프트웨어가 복잡해짐으로 인해 보안상 취약점이 발생할 수 있는 부분을 보완하여 프로그래밍하는 것. 시큐어 코딩에는 안전한 소프트웨어를 개발하기 위해 지켜야 할 코딩 규칙과 소스 코드 취약 목록이 포함된다. 참조 [네이버 지식백과] 시큐어 코딩 [secure coding] (IT용어사전, 한국정보통신기술협회) DATABASE 우선 데이터를 DB에 저장한다. (오라클 사용) 데이터가 숫자라면 NUMBER 문자라..

JAVA 2022.07.13 0

● HTML/CSS ●

more

[HTML/CSS] 줄 맞춤 ( 긴 글 칸에 맞추기 _ 자동 엔터)

input 태그 안에 값을 넣을 때 아주 긴~~ 문장을 입력할 때가 있다. 이때 스타일을 적용하지 않으면 한줄로 입력이 되기 때문에 주의가 필요하다. 방법은 아래와 같다. white-space: pre-wrap 적용 전 white-space: pre-wrap 적용 후 상세보기 번호 ${vo.no } 작성일 ${vo.dbday } 이름 ${vo.name } 조회수 ${vo.hit } 제목 ${vo.subject } ${vo.content } 수정 삭제 목록

HTML|CSS 2022.09.01 0

[CSS] 선택자의 종류와 사용법

HTML과 CSS를 구분할 때 CSS = 화면 디자인 이렇게 단순하게 생각해도 좋다. 화면 디자인을 하기 앞서 선택자를 반드시 알아야 한다. 그렇다면 선택자는 무엇일까? 선택자 CSS는 외부 CSS, 내부 CSS, 인라인 CSS로 사용된다. 외부 CSS와 내부 CSS는 태그 하나 하나에 직접 디자인을 적용시키는 것이 아니라 전체 태그 중 다수 또는 소수의 태그에 디자인을 적용시킨다. 만약 한 페이지 안에 태그가 10,000개가 존재한다고 생각해보자. 만개의 태그 중 특정 테이블 안에 존재하는 태그의 디자인만 변경하고 싶다. 그럼 어떻게 찾을 수 있을까? 이때 필요한 것이 선택자이다. 선택자는 태그만이 갖는 특성을 이용해서 원하는 태그를 찾을 수 있도록 '구분'한다. * 전체 선택자 페이지 내부에 있는 모..

HTML|CSS 2022.07.12 0