guping의 등록된 링크

 guping로 등록된 티스토리 포스트 수는 81건입니다.

인천 일보 아카데미 58~67일 차 개인 프로젝트 - NAVER 지식in 클론 코딩 (11) - 프로젝트 마지막 [내부링크]

네이버 지식In - 랭킹 페이지 1번 사진은 실제 네이버 지식 in에서 제공하는 명예의 전당 이미지 2번 사진은 클론 코딩으로 따온 랭킹 페이지입니다. 솔직히 랭킹 페이지의 경우 별 다른 기능은 없고, 내공(point)에 따라 랭킹이 정해지게 만들었습니다 memberRank.jsp - 1~3등 출력 랭킹 1등 ~ 3등의 경우 아무래도 최상위 3인을 표현하기 때문에 List를 출력하는 디자인의 사이즈가 약간 더 큰편입니다. 그렇기 때문에 c태그의 for문에 제약을 걸어 1등 ~ 3등은 끊어가며 따로 출력을 진행했습니다. 1 ${memberDTO.memberEmail} 날먹의 신 분야 개꿀 내공 ${memberDTO.memberPoint} memberRank.jsp - 4등부터의 List 출력 일단 모든 사..

인천 일보 아카데미 58~67일 차 개인 프로젝트 - NAVER 지식in 클론 코딩 (10) [내부링크]

네이버 지식인 게시판 답변 채택 채택을 만들면서 알게 된 부분은 답변을 채택하면 채택되었는지 화면에 표시가 되어야 다른 사용들도 정보활용을 하기 편하고 또한 채택이 중복으로 되면 안 되기 때문에 채택 이후 버튼이 사라져야 합니다. 당연히 채택은 게시글 작성자만 가능해야합니다. 네이버의 경우 사용자가 채택받은 개수를 보여주기 때문에 채택 답변수를 화면에 보여주어야 합니다. 마지막으로 1번째 답변이 채택되는 경우가 아닌 10번째 답변이 채택이 되는 경우 채택이 된 답변은 무조건 답변글의 1번째 답변으로 보여주어야 한다는 것입니다. boardDetail.jsp - 채택 사용자의 id가 게시글을 작성한 member의 id와 같다면 c태그의 if문을 사용하여 채택 버튼을 보여줍니다 또한 채택이 되어있는 게시글의 ..

인천 일보 아카데미 58~67일 차 개인 프로젝트 - NAVER 지식in 클론 코딩 (9) [내부링크]

네이버 지식인 게시글 상세페이지 댓글 맨 처음 댓글을 만들때 전에 했던대로 하면된다고 생각했지만 글작성자의 경우 질문 작성자로 사용자의 이름이 작성되어야하고 당연히 일정이상의 댓글이 달리는 경우 페이징까지 진행해야했습니다. 또한 댓글공간을 윈도우로드를 사용하였기 때문에 페이지가 넘어가면 새로고침되며 디스플레이가 none으로 바뀌는 상황으로 ajax를 사용해 비동기 처리를 진행해야 했습니다. boardDetail.jsp - 코멘트 작성 공간 게시글 상세페이지의 댓글 작성을 진행하는 공간입니다 로그인을 하지 않은경우 코멘트를 작성하는 공간을 클릭하면 로그인이 필요하다는 문구를 confirm을 사용하여 확인 취소를 받고 확인을 클릭하는 경우 로그인 페이지를 화면에 띄웁니다. 등록 등록 boardDetail.j..

인천 일보 아카데미 58~67일 차 개인 프로젝트 - NAVER 지식in 클론 코딩 (8) [내부링크]

네이버 지식인 게시글 상세 페이지 게시글 상세에서는 생각보다 제약이 많은데 1. 사용자가 로그인이 되어있고 게시글에 답변이 없는 경우에는 답변을 바로 작성할 수 있게 에디터를 보여주어야하고 2. 사용자가 로그인 되어 있고 게시글에 답변이 있는 경우에는 답변 등록 버튼만 보여주고 에디터는 보여주지 않습니다 3. 사용자가 로그인을 하지 않은 상태에서도 답변 등록 버튼만 보여주고 버튼을 누르면 로그인페이지로 넘어갑니다. 4. 게시글 작성자가 보는 경우에는 답변을 등록할 수 없게 버튼 / 에디터를 보여주지 않습니다 boardDetail.jsp 1. 사용자가 로그인이 되어있고 게시글에 답변이 없는 경우 지금 생각해보면 스크립트를 사용했다면 더 편했을텐데 왜이렇게했는지 이해가 안갑니다 롬북을 사용하여 c태그 if문..

인천 일보 아카데미 42일차 -2- 어노테이션 - Controller , GetMapping / 주소를 parameter로 / parameter로 받은 값 꺼내기 / [내부링크]

Controller 알아보기 전에 먼저 스프링 프레임워크의 MVC패턴을 살짝 알아보겠습니다 스프링 프레임워크에서는 MVC패턴을 사용하고 있습니다 Model - View - Controller 의 약자입니다 여기서 Model은 DB를 말하고 View는 사용자가 보는 인터페이스를 말합니다 Controller는 인터페이스 받아온 정보를 토대로 개발자가 정해놓은 규칙에 따라 DB에 전달하거나 받아오는 하는 역활을합니다 중간에서 다리 역활을 한다고 생각하면 편합니다 Controller- 사용해보기 스프링 프레임워크에서는 Controller는 어노테이션으로 추가하여 사용합니다 import org.springframework.stereotype.Controller; @Controller 해당 클래스의 생성자 { 이런..

인천 일보 아카데미 58~67일 차 개인 프로젝트 - NAVER 지식in 클론 코딩 (7) [내부링크]

네이버 지식인 QnA글 목록 화면 카테고리는 애초에 만들 생각이 없었기 때문에 지웠고 당연히 관심질문 등 유저의 정보를 나타내는 공간이 필요 없다고 생각하여 뺏습니다 또한 질문 게시판과 QnA게시판의 차이를 모르겠어서 그냥 QnA게시판만 만들기로 했습니다. boardQnA.jsp - script main화면의 QnA 리스트와 크게 다른점이 없지만 제목으로만 보기 , 내용까지 보기 버튼을 추가했다는 약간의 차이점이 있습니다. 어떻게 만들어야할지 고민하다가 그냥 무식하고 편한 방법으로 2가지 상황의 Container를 2개 만들고, 버튼 클릭에 따라 display를 none / block으로 바뀌게 만들었습니다 Controller QnA페이지로 이동시 사용되는 GetMapping @GetMapping("/b..

인천 일보 아카데미 58~67일 차 개인 프로젝트 - NAVER 지식in 클론 코딩 (6) [내부링크]

QnA 글작성 오른쪽이 네이버의 QnA글작성 페이지 왼쪽에 클론코딩으로 만든 페이지 스마트에디터 api를 사용하고 싶었지만 사용방법도 모를 뿐더러 네이버 api사이트를 들어가보니 개발자 등록을 해야하더라... 그래서 쓸만한 에디터 없나 찾아보다가 ckeditor 에디터를 사용했다 boardSave.jsp - script ckeditor를 cdn주소로 가져와 사용했기 때문에 placeholder를 적용하는 방법도 몰라 고생이 많았습니다 ck에디터 플러그인 혹시나 ckeditor를 처음 사용한다면 한번 읽어보시길 추천드립니다. (cdn으로 사용할 시 적용이 안되는 부분도 있음! 예 : placeholder ) Class Config (CKEDITOR.config) - CKEditor 4 API docs CK..

인천 일보 아카데미 58~67일 차 개인 프로젝트 - NAVER 지식in 클론 코딩 (5) [내부링크]

Index 만들기 이번 프로젝트의 기간은 총 2주이기 때문에 원본 네이버 지식인 사이트를 모두 클론 코딩하기에는 시간이 부족했습니다 그래서 가장 중요한 기능이라고 생각되고 만들어보고 싶었던 기능만 추가하여 Index를 꾸몄습니다 Index.jsp - script 중요하게 사용된 스크립트는 하단의 QnA를 보여주는 리스트입니다 제가 배운 페이징은 ajax를 사용하지 않으면 화면이 새로고침되며, 최상단으로 올라가는 문제가 있기 때문에 페이징을 ajax로 비동기 처리를 하였습니다 Controller main화면 출력에 사용되는 GetMapping입니다 @GetMapping("/") public String Index(@RequestParam(value = "bestPage", required = false, ..

인천 일보 아카데미 58~67일 차 개인 프로젝트 - NAVER 지식in 클론 코딩 (4) [내부링크]

myPage 레이아웃 만들기 왼쪽이 실제 네이버의 myPage 레이아웃 오른쪽이 내가 만든 myPage레이아웃 내가 필요한 부분만 가져와 사용했고 필요 없는 부분은 제외 css부분은 문외한이기 때문에 이거만드는데 하루종일 걸렸다.... header.jsp - component ${memberDTO.memberEmail} 내정보 보기 프로필 사진 변경 ${memberDTO.memberEmail}님 로그아웃 ${memberDTO.memberDomain} 사실 myPage 레이아웃에는 큰 기능이 없습니다 그냥 보고 만들어보고 싶어서 해봤는데 생각보다 어려웠습니다 배운점은 realative , absolute 가 있습니다 realative : 해석 그대로 상대적인 위치를 지정합니다 position : relat..

인천 일보 아카데미 58~67일 차 개인 프로젝트 - NAVER 지식in 클론 코딩 (3) [내부링크]

회원가입 form 왼쪽이 실제 네이버의 회원가입 form이고 오른쪽이 클론코딩으로 만든 회원가입 form 필요한 부분만 사용을했고 필요 없는 부분은 제외 memberSave.jsp 아이디 @naver.com 비밀번호 비밀번호 재확인 이름 생년월일 월 1 2 3 4 5 6 7 8 9 10 11 12 성별 성별 남자 여자 선택 안함 가입하기 엄청 길지만 막상 뜯어보면 css가 절반 이상입니다 특이점은 사용자가에 생년월일을 입력받을 때 input , select , input을 사용했다는 점입니다 년 , 월 , 일 을 따로 입력받고 Controller에서 하나로 합쳐 DB로 넘겨줍니다 memberSave.jsp - script Controller Ajax에서 넘겨받은 값을 DB로보내 유효성 체크를 진행하는 P..

인천 일보 아카데미 58~67일 차 개인 프로젝트 - NAVER 지식in 클론 코딩 (2) [내부링크]

로그인 Form 왼쪽이 실제 네이버 로그인 form이고 오른쪽이 클론코딩을 진행하며 뜯어 만든 로그인 form입니다 솔직히 외관은 비슷하게 할 필요는 없지만 보기 좋은 떡이 먹기에도 좋다고 만들면서 눈요기좀 했습니다 memberLogin.jsp 로그인을 시도했지만 email/pass가 불일치하거나 없는 email로 로그인하는 경우 ${loginFalse} 회원가입 로그인 막상 뜯어보면 크게 특별한 기능은 없습니다 css때문에 엄청 길어졌습니다 memberLoging.jsp - script 아이디와 비밀번호가 있는지에 대한 판단은 서버에 넘어가서 확인을 해야하기 때문에 jsp에서는 최소한의 value 체크만 진행했습니다 MemberController - 생성자 주입 사용 @GetMapping("/membe..

인천 일보 아카데미 58~67일 차 개인 프로젝트 시작 - NAVER 지식in 클론 코딩 (1) [내부링크]

주요 기능 - 로그인 - 회원가입 - 검색 - 페이징 - 게시글 작성 - 답글 작성 - 채택 - 댓글 기획 의도 네이버 지식인 클론 코딩으로 개인 프로젝트를 진행하게 된 이유는 아직 페이징 부분에 미숙한점이 많이 있기 때문에 따로 정보를 알아보던 중 지식인 페이지가 정말 페이징 공부에 도움이 많이 된다는 글을 읽고 시작하게 되었습니다 프로젝트 설계 총 2주간의 프로젝트 기간중 1일차에서는 프로젝트 설계를 진행하고 마무리했습니다

인천 일보 아카데미 56일~57일차 -회원제 게시판 만들기 - 사진 프리뷰(다중) / 파일 이름 가져오기(다중) / 버튼 - onclick 실행 함수 변경하기 [내부링크]

완성본 git GitHub - guguping/member_board: ICIA - DAY 54 ~ ING ICIA - DAY 54 ~ ING. Contribute to guguping/member_board development by creating an account on GitHub. github.com 다쓰기에는 너무 많기 때문에 완성본 git을 올림 페이징 , 검색 , 페이징 , 검색 , 페이징 ,검색 등 모르는 부분은 git을 참고 사진 프리뷰 - (다중) , 파일 이름 가져오기 - (다중) boardSave.jsp 이미지 등록 전날 회원가입에 사용한 이미지파일 미리보기 와 다른점이 있다면 전날 회원가입에 사용된 file 타입의 input으로는 하나의 파일만 받았다면 이번에는 게시판에 사용되는..

인천 일보 아카데미 55일차 -회원제 게시판 만들기 - 회원가입 - 사진 프리뷰 / 회원가입 - 비밀번호 정규식 제약 조건 / 로그인 경고문 [내부링크]

완성본 git GitHub - guguping/member_board: ICIA - DAY 54 ~ ING ICIA - DAY 54 ~ ING. Contribute to guguping/member_board development by creating an account on GitHub. github.com 회원가입 - 업로드 사진 미리보기 / 프리뷰 save는 지금까지 배운 내용을 사용하였기 때문에 따로 추가되는 부분이 없습니다 하지만 사진을 업로드하는 과정에서 사용자가 사진을 올렸을 때 이미지를 보여주기 위한 프리뷰를 추가하였습니다 memberSave.jsp 증명사진 label을 사용하여 text를 클릭해도 input file이 실행됨 등록 일반 input file은 이미지가 이쁘지 않고 Chrom..

인천 일보 아카데미 54일차 -비로그인 게시판- 검색 / 검색결과 페이징 [내부링크]

Search 기능 만들어보기 + 결과 페이징 어제 만들어본 페이징 기능을 활용하여 검색 기능을 추가했습니다 페이지당 보여지는 최대게시글 갯수 , 하단페이징의 갯수까지 동일하게 맞췄습니다 검색 결과가 페이지당 최대 글갯수인 9보다 작아진다면 [이전] , [다음] 기능을 비활성화 합니다 Search + Paging - Controller 서치의 페이징을 쉽게하기 위하여 전날에 사용했던 Controller의 Paging 메소드를 수정하여 사용했습니다 // pagin Mapping과 search Mapping을 합친것 @GetMapping("/paging") public String paging(@RequestParam(value = "page", required = false, defaultValue = "1..

인천 일보 아카데미 53일차 -비로그인 게시판- List 페이징 기능 [내부링크]

Paging 기능 만들어보기 사진과 같이 한페이지에 9개의 게시글이 출력되고, 하단의 페이지번호는 1~3 ,4~6 이런식으로 3개씩 끊어서 출력했습니다 1아래는 더 이상 [이전] 으로 돌아갈 수 없기 때문에 회색으로 돌아갈 수 있는 페이지가 있다면 다시 검은색으로 활성화 됩니다 [다음] 부분도 마찬가지로 마지막 페이지에서는 비활성화 됩니다 Paging.jsp boardPagingList 글번호 제목 작성자 작성시간 조회수 ${board.id} ${board.boardTitle} ${board.boardWriter} ${board.boardHits} 여기까지는 게시글을 롬북의 C태그를 사용해 게시글을 출력했습니다 잘 모르겠다면 List 게시글을 참고해주세요 [이전] 현재 페이지가 1페이지면 [이전] 글자만..

인천 일보 아카데미 53일차 - 비로그인 게시판 - 댓글 기능 [내부링크]

Comment 기능 만들어보기 댓글이 없다면 아직 작성된 댓글이 없습니다를 출력 이후 댓글이 달리는 경우 출력문이 사라지고 댓글을 출력 Detail.jsp 먼저 댓글은 게시글을 들어가는 상세페이지에서 확인할 수 있기 때문에 Detail.jsp를 수정했습니다 추가로 사용된 CDN은 moment와 jquery입니다 moment - JavaScript로 작성된 날짜 및 시간 처리 라이브러리 날짜 및 시간을 쉽게 파싱, 조작, 표시할 수 있도록 다양한 기능을 제공 jquery - ajax용 그이상 이하도 아님 Detail.jsp - body 추가 이렇게 table 태그 안에서도 구역을 head body foot으로 나누어주면 스타일을 넣어주기 훨씬 더 편합니다 아직 작성된 댓글이 없습니다 id 작성자 내용 작성..

인천 일보 아카데미 52일차 -1- 이미지 업로드 / detail에 이미지 보여주기 [내부링크]

Save - jsp 내용 업로드 파일 업로드 시에는 form태그의 enctype 이 "multipart/form-data"로 설정되어야 한다 method는 post이어야 한다 input 태그의 type 속성 값을 file로 지정해야 한다 BoardDTO @Data @NoArgsConstructor public class BoardDTO { Long id; String boardWriter; String boardPass; String boardTitle; String boardContents; Timestamp boardCreateDate; int boardHits = 0; int fileAttached = 0; List boardFile; } DTO에서는 MultipartFile 타입의 boardfil..

인천 일보 아카데미 51일차 -1- 비로그인 게시판 만들어보기 [내부링크]

url 조건 MySQL 테이블 DTO 시작페이지 Index header - nav - section - footer로 나눴고 nav에는 글작성 , 글목록으로 이동할 수 있게 링크가 걸려있음 글작성 글목록 글 작성 페이지 나는야 세이브 작성자: 글비밀번호: 글제목 내용 내용을 작성할 공간은 textarea로 만들어 주었음 clos rows를 이용하여 가로 세로 크기도 정해줌 이렇게 입력된 게시글 내용은 post로 controller의 /board/save에 넘어가게된다 Controller @Controller @RequestMapping("/board") // 공통 주소값으로 설정 public class BoardController { @Autowired private BoardService boardSe..

인천 일보 아카데미 50일차 -2- Email - 중복체크 (개인저장 내용X) [내부링크]

Save.jsp 여기서 중요한부분은 async:false 인데 ajax는 비동기 처리방식이지만 async가 false라면 처리방식이 동기로 전환되며 true일 경우 비동기로 처리됩니다 default값은 true이기 때문에 굳이 적지 않아도 상관 없습니다 비동기 처리방식일 때에는 ajax의 success , error 부분에서는 값을 가져올 수 없지만 동기 처리방식으로 전환하였기 때문에 resResult에 담긴 값을 가져와 리턴할 수 있습니다 Controller @PostMapping(value = "/emailCheck", produces = "application/text; charset=utf-8") public ResponseEntity emailCheck(@RequestParam("saveEmai..

인천 일보 아카데미 50일차 -1- ajax - json 주고 받기 / ajax - 리턴값 body에 표로 넣기 (@RequestBody) / ajax - ResponseEntity 알아보기 [내부링크]

JSON이란 ? JavaScript Object Notation의 약자 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식입니다 JSON은 데이터 포맷일 뿐 통신 방법 , 프로그래밍 문법이 아니라 단순히 데이터를 표시하는 표현 방법이라고 합니다 JSON의 특징 태그로 보다는 중괄호({}) 같은 형식으로 시작하고 , 값을 "KEY" : "Value "로 표현합니다 ajax - json 사용 이번 예시에서는 하나의 Object만 만들어 사용하였지만 , 여러가지 Object로 여러개 사용 가능하다 JSON형식에는 null , number , string , array , object , boolean을 사용할 수 있다 @RequestBody - 어노테이션 알아보기 전날에는 @Response..

인천 일보 아카데미 49일차 -2- ajax - 알아보기 / ajax - 사용해보기 / 동기식?,비동기식? / ajax - 객체리턴 / ajax - list리턴 / ajax - for문 [내부링크]

Ajax - 알아보기 ajax를 알아보기 전에 동기식 , 비동기식이 뭔지 알아보겠습니다 동기식 : 한 번에 한 가지씩 실행되고 다음 작업은 이전 작업이 완료된 후에 실행됩니다 비동기식 : 두 개 이상의 작업이 동시에 실행될 수 있는 것을 말합니다 여기서 ajax는 비동기식 웹 개발에 사용되는 기술입니다 (Asynchronous JavaScript and XML의 줄임말입니다) 웹 페이지를 다시 로드하지 않고도 백그라운드에서 서버와 데이터를 주고 받을 수 있습니다 Ajax - 사용 예시 문법 - Ajax는 Jquery를 사용하는게 더 가독성이 좋기 때문에 Jquery를 사용했습니다 함수호출01 Ajax의 기본 구조입니다 전송 방식 , 주소값 , success , error 로 이루어져 있습니다 succes..

인천 일보 아카데미 49일차 -1- Spring Framework 회원정보 수정 - 삭제 만들어보기(제약조건 추가) [내부링크]

회원정보 수정 - 만들어보기 1. 조건 - 회원 상세 페이지에서 버튼을 사용하여 정보 수정으로 이동하기 2. 조건 - 변경 전 비밀번호를 입력받고 수정 (비밀번호가 틀리다면 수정하지 않음) Controller @GetMapping("/memberDetail") public String memberDetail(@RequestParam("id") Long id, HttpSession session) { 로그인 이후 회원 상세페이지를 누르면 memberDetail 주소를 요청함 로그인하며 받은 정보는 session에 저장했기 때문에 id를 파라미터로 받음 @RequstParam을 통해 id값을 받음 MemberDTO memberDTO = memberService.detailList(id); id값은 고유값으로..

인천 일보 아카데미 48일차 -1- 실습 - footer만들기 / HttpSession -인터페이스 / 롬복 c태그 - 조건문 / [내부링크]

실습 - 만들어보기 쇼핑몰 회원관리의 연장선 너무 길기 때문에 다작성 하지는 않고 새로 배운 부분만 작성 인천 일보 아카데미 46일차 -2- 배운 내용으로 만들어보기 (쇼핑몰 회원관리) / redirect 약간 이해함 아래 사진과 같이 만들어 봅시다 조건 .1 save.jsp에서 사용자가 회원 성명을 입력하지 않은 경우 팝업으로 "회원성명이 입력되지 않았습니다"를 출력하고 해당 text바에 포커스 조건 .2 마찬가지로 guping.tistory.com 년도를 자동으로 찍어주는 footer만들기 어느 사이트를가도 하단에는 저작권을 나타내는 footer가 존재하고 년도까지 적혀있습니다 여기서 푸터의 저작권 년도는 해가 지날때마다 바꿔주어야하기 때문에 해가지나면 자동으로 변경되게 만드는게 보통입니다 HttpS..

인천 일보 아카데미 47일차 -2- jsp - include(지시자) / JavaScript - preventDefault (메소드) /try-cach 를 사용하여 404에러 잡기 [내부링크]

JSP - include (지시자) include는 jsp에서 기본으로 제공하는 용어입니다 include 는 JSP(Java Server Pages)에서 다른 JSP나 HTML 파일 등을 포함시키는 방법중 하나입니다 문법 사용예시 사진과 같이 모든 페이지에서 사용되는 header / nav / footer 부분을 따로 만들고 include를 사용하여 원하는 부분에 넣어준 모습입니다 nav.jsp - script 예시 jsp파일을 해당 위치에 넣어 화면에 출력하기 때문에 스크립트또한 잘 작동합니다 JavaScript - preventDefault (메소드) prevetnDefault는 JavaScript의 이벤트객체에서 제공하는 메소드입니다 주사용 기능은 이벤트의 동작을 막거나 취소할때 사용됩니다 사용 예..

인천 일보 아카데미 47일차 -1- IntelliJ에서 MySQL 사용하기 / IntelliJ - HTML 편의 설정법 [내부링크]

IntelliJ에서 MySQL 사용하기 1. IntelliJ를 켜고 오른쪽 사이드바에 있는 데이터베이스를 눌러주세요 2. 데이터베이스 사이드바가 열리면 위쪽에 +버튼을 누르고 데이터베이스 항목에서 MySQL을 찾아 눌러주세요 3. 그럼 이렇게 설정칸이 나오고 여기서 사용자 , 비밀번호 , 데이터 베이스 항목에 MySQL에서 만들어둔 정보를 넣어줍니다 4. 정보를 다 입력했다면 연결 테스트를 눌러주세요 드라이버 파일 다운로드 팝업이 뜬다면 팝업을 눌러 다운로드 해주세요 5. MySQL에 생성한 계정 정보와 DB정보가 맞다면 이렇게 성공팝업이 뜨고 맞지 않다면 무한로딩화면이 뜨기 때문에 무한 로딩이나 실패화면이 뜬다면 SQL에서 만든 계정 정보나 DB정보를 확인해주세요 6. 실험을 위해 미리 만들어둔 테이블..

인천 일보 아카데미 46일차 -2- 배운 내용으로 만들어보기 (쇼핑몰 회원관리) / redirect 약간 이해함 [내부링크]

아래 사진과 같이 만들어 봅시다 조건 .1 save.jsp에서 사용자가 회원 성명을 입력하지 않은 경우 팝업으로 "회원성명이 입력되지 않았습니다"를 출력하고 해당 text바에 포커스 조건 .2 마찬가지로 사용자가 모든 정보를 입력하여 정상 등록되는 경우 팝업으로 "회원등록이 완료 되었습니다!"를 출력 조건 .3 조회된 목록의 회원 번호를 클릭하면 회원정보수정 화면(list.jsp)으로 이동 당연히 모든 정보는 DB를 통해야함 index - 메인화면 설명 필요 없는 부분 Save.jsp - 회원 등록 페이지 사용자의 정보를 입력받아 /saveParam으로 Controller에 파라미터로 전성된다 회원 정보이기 때문에 보안을위해 post로 전송한다 Controller @Controller public cla..

인천 일보 아카데미 46일차 -1- spring_framework / 수정 , 삭제 추가해보기 [내부링크]

준비물 전날에 만들었던 Book프로젝트를 사용하여 추가적인 수업을 진행했습니다 인천 일보 아카데미 45일차 -2- DB와 연동해보기 / DB에 값 담기 / DB에 담은 값 list 출력 / DB에 담긴 IntelliJ를 MySQL DB와 연결해보기 먼저 전에 받은 설정파일에서 root-context-DB연결 파일을 vscord로 열어 인텔리제이에 있는 root-context에 복사 붙여넣기 해줍니다 이후 각각의 붉은 선부분에 MySQL에서 만 guping.tistory.com 저장된 정보 수정하기 list.jsp에 버튼을 3개 만들고 각각 수정 , 삭제 , 조회로 설정했습니다 각버튼을 클릭하면 onclick 이벤트가 실행되고 함수를 호출합니다 id의 정보는 MySQL에서 자동으로 넣어주고 primary ..

인천 일보 아카데미 45일차 -2- DB와 연동해보기 / DB에 값 담기 / DB에 담은 값 list 출력 / DB에 담긴 특정 값만 출력 [내부링크]

IntelliJ를 MySQL DB와 연결해보기 먼저 전에 받은 설정파일에서 root-context-DB연결 파일을 vscord로 열어 인텔리제이에 있는 root-context에 복사 붙여넣기 해줍니다 이후 각각의 붉은 선부분에 MySQL에서 만들어준 DB의 이름 , user계정 , password를 입력해주세요 (작은 오타가 있어도 웹이 열리지 않기 때문에 왠만하면 MySQL에서 복사하여 붙여넣어주세요!) 이렇게 DB와 user정보를 모두 입력했다면 아래 거슬리는 빨간 선을 제거해봅시다 저희가 만든 resources 폴더가 아닌!! 처음 프로젝트를 만들때 부터 있던 resurces 폴더에 파일 하나를 만들어주세요 파일의 이름은 mybatis-config으로 하겠습니다 이렇게 만들어진 mybatis-con..

인천 일보 아카데미 45일차 -1- 실습 / MySQL - DB / table 만들기 [내부링크]

새프로젝트 만들기 1. project name: library 2. base-package: com.icia.lib 3. 주요 동작 및 파일 1. Class 1. HomeController 1. 기본주소 요청에 대해 index.jsp 출력 2. BookController 1. 도서 등록, 조회, 목록 출력 등을 위한 메서드 있음 3. BookService 1. Controller로 부터 호출되며 로직 처리 4. BookDTO 1. 번호(id), 제목(bookName), 출판사(bookPublisher), 저자(bookAuthor), 정가(bookPrice) 정보를 담기 위한 필드 있음. 2. index.jsp 1. save.jsp를 출력하기 위한 링크 있음(요청주소: /save) 3. list.jsp를 ..

인천 일보 아카데미 44일차 -2- ModelAttribute / 체크박스로 받은 값 담기 / @Service 알아보기 / 의존성 주입 - Autowired [내부링크]

여러 타입의 정보를 파라미터로 받아 콘솔에 출력해보기 Controller @Controller public class MainController { @GetMapping("/monday5") public String monday5(){ return "monday5"; } monday5.jsp를 화면에 보여주기 위해 return moday5를하는 GetMapping 메소드 @PostMapping("/monday5-param") public String monday5Param(@RequestParam("name") String name, @RequestParam("gender") String gender , @RequestParam("city") String city , @RequestParam("lang"..

인천 일보 아카데미 44일차 -1- 실습 [내부링크]

1. 주요 동작 1. 모든 요청은 MainController에서 처리함 2. 프로젝트 시작하면 index.jsp 출력 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class MainController { @GetMapping("/") public String index(){ return "index"; } } 2. index.jsp 1. monday1.jsp를 출력하기 위한 링크 있음(요청주소: /monday1) 2. monday2.jsp를 출력하기 위한 버튼 있음(요청주소: /monday2) 3. monday3.jsp를 ..

인천 일보 아카데미 43일차 -1- 프로젝트 다시 만들기 / Model 알아보기 / Model - 객체를 출력 / Model - List를 출력 [내부링크]

1. 프로젝트 만들기 1. project name: spring_02 2. base-package: com.icia.ex2 인천 일보 아카데미 42일차 -1- IntelliJ - Spring Framework 프로젝트 만들어보기 IntelliJ 를 사용하여 Spring Framework -프로젝트 만들어보기 IntelliJ에서는 스프링 부트 프로젝트 자동생성은 지원하기 때문에 말들기 정말 쉽지만 스프링 프라임워크는 자동 생성을 지원하지 않습니 guping.tistory.com 2. 주요 동작 1. 모든 요청은 HomeController에서 처리함 2. 프로젝트 시작하면 index.jsp 출력 3. index.jsp 1. hello1.jsp를 출력하기 위한 링크 있음(요청주소: /hello1) 2. hel..

인천 일보 아카데미 42일차 -1- IntelliJ - Spring Framework 프로젝트 만들어보기 [내부링크]

IntelliJ 를 사용하여 Spring Framework -프로젝트 만들어보기 IntelliJ에서는 스프링 부트 프로젝트 자동생성은 지원하기 때문에 말들기 정말 쉽지만 스프링 프라임워크는 자동 생성을 지원하지 않습니다 그렇기 때문에 따로 만들어줘야합니다 (무료버전에는 스프링 부트 프로젝트를 만들어야한다 이거 지원 안함 ) 1. File → New → Project를 눌러주세요 2.Maven Archetype → Name입력 → 하단의 maven-archetype-webapp → 하단의 Create 3. 프로젝트를 어디서 열겠냐는 안내문구입니다 저는 this window로 했습니다 (전에 있던 프로젝트가 안보인다고 당황하지 마세요! 인텔리 제이는 프로젝트 단위로 창이 열립니다! 이클립스는 프로젝트가 다 ..

인천 일보 아카데미 38일차 -1- github 블로그 만들기 [내부링크]

github블로그를 만드는 이유 github블로그를 만드는 이유는 커스터 마이징이 일반 블로그들보다 엄청 자유롭다는 장점이 있습니다 하지만 하나부터 열까지 모두 자신이 만들어야하기 때문에 프로그램 언어를 모른다면 상당히 골머리가 아프다는 단점이 있습니다 그래도 jekyll등 공유해주시는 분들이 많이 있기 때문에 맨바닥에서 38일차 정도 배운 저도 어느정도는 수정해서 만들어볼 정도입니다 [jekyll로 하루 종일 만든 블로그] GUPING GUPING의 블로그입니다 guguping.github.io 뼈대를 만드는 정도만 배우고 넘어갔기 때문에 꾸미기를 원하신다면 다른 블로그를..... github블로그 - 만들어보기 (뼈대) 인천 일보 아카데미 14일차 git_github ? git_이란 ? > 형상관리 ..

인천 일보 아카데미 37일차 - eventlistener - 사용 , 응용 / jquery - CDN가져오기 , 맛보기 / alerts - 좀 더 알아보기 / bootstrap - Examples ? [내부링크]

eventlistener - 사용해보기 eventlistener는 특정 DOM객체에 이벤트를 추가하고 함수를 호출하는 기능이라고 생각하면 편할듯합니다 사용 문법 DOM객체.addEventListener(이벤트명 , 실행할 함수명 or 익명함수와 실행문) 샘플 코드 사용법은 2가지가 있고 익명함수를 사용할때에는 addEvnetListener ( )안에 함수 실행문까지 다 넣어줘야합니다 EventListener - 응용 사용 이메일입력 input 정규식 : 소문자 , 숫자 필수 8~16자 이내로 blur 이벤트를 이벤트 리스너로 적용 email_check함수 호출 이메일입력: jquery - 맛보기 (CDN 가져오기) 오늘은 맛보기이기 때문에 CDN을 사용합니다 구글에 jQuery를 검색하고 CDN을 눌러줍..

인천 일보 아카데미 36일차 -2- 회원가입 - email / 회원가입 -passwoard / form - onsubmint , return 의 사용 _ focus/ select태그 응용 domain넣기 / 정규식 사용법 / addressAPI 사용법 / [내부링크]

회원가입 - email 만들어보기 이메일 입력해야하는 값을 표기하는 h6태그 사용자의 입력을 받아야하기 때문에 input태그에 text바를 사용하였습니다 이벤트 onblur를 사용하여 영역을 빠져나가면 email_check()함수를 호출합니다 함수 호출 결과를 표기할 h6태그 회원가입 - password 만들어보기 bootstrap이 사용되었습니다 bootstrap을 사용하여 아이콘을 넣는 방법을 모른다면 아래 글을 참고하자 인천 일보 아카데미 36일차 -1- 계산기 , 학점 계산기 풀이 / 회원가입 - 기초(길이 체크) / bootstrap - 인천 일보 아카데미 35일차 -숙제- 계산기 / 학점 관리 프로그램 계산기 만들어보기 계산기 number1: number2: 계산결과: 학점관리 프로그램 만들기..

인천 일보 아카데미 36일차 -1- 계산기 , 학점 계산기 풀이 / 회원가입 - 기초(길이 체크) / bootstrap - Icon 스타일 추가하기 [내부링크]

인천 일보 아카데미 35일차 -숙제- 계산기 / 학점 관리 프로그램 계산기 만들어보기 계산기 number1: number2: 계산결과: 학점관리 프로그램 만들기 JAVA 성적: html 성적: 학점: guping.tistory.com 계산기 - 풀이 number1 : number2 : 계산결과 : 계산 형변환에 사용한 Number()함수와 , pareInt()함수의 차이는? 학점계산기 - 풀이 JAVA 성적: html 성적: 학점: 학점계산 로그인 - id 길이(length) 체크 해당 결과를 띄워주는 기능을 만들어봅시다 *head부분에 style로 margin100 줌* 이메일 이메일 작성 공간을 알려주는 h6태그 input태그를 이용해 text바를 생성 onblur를 이용해 사용자가 text바를 탈출..

인천 일보 아카데미 35일차 -숙제- 계산기 / 학점 관리 프로그램 [내부링크]

계산기 만들어보기 계산기 number1: number2: 계산결과: 학점관리 프로그램 만들기 JAVA 성적: html 성적: 학점:

인천 일보 아카데미 35일차 -1- DOM - 응용 / DOM - 이미지 변경 /script로 html - style 제어하기 / DOM - 사용 표에 구구단 출력 / DOM - 입력값 이동시키기 [내부링크]

DOM - 응용문제 풀어보기 1. buttond을 만들고 클릭하면 onclick을 이용하여 함수 fun1을 호출하고 결과를 출력합니다 script 2. button을 만드는 방식은 위와 같습니다 다른점은 fun2함수를 호출합니다 script 3. 이번에는 함수 fun3을 호출합니다 4. 기출 변형입니다 버튼 4를 누르면 함수 fun4를 호출합니다 이번 문제는 상당히 자주사용하고 중요하기 때문에 2가지 방법 모두 알아보겠습니다 DOM - 응용 이미지 변경 이미지 교체 버튼을 누르면 이미지가 변경되게 script를 사용해봅시다 먼저 호구마2라고 이름지은 고구마 사진을 넣어줍니다 이미지 교체 버튼을 누르면 이미지 교체이기 때문에 button 태그에 이벤트 onclick을 사용합니다 onclick 이벤트가 발생..

인천 일보 아카데미 33일차 -1- layout 만들기 / mediaquery / grid / / bootstrap / buttons / form / option / radio /checkbox [내부링크]

layout - 만들어보기 layout - 영역 구분 먼저 body에 레이아웃의 영역을 설정해준다 이번 만들어 보기에는 4가지 영역으로 ( heder , main , section , footer )구분했다 layout - 스타일 적용 전날 만든 menu + layout 합쳐보기 Home 저는요 Portfolio Contact Me 전날 만든 menu를 div class = "menu" 안에 복사 붙여넣기 하였다 menu 클래스로 지정한 div에 넣었기 때문에 스타일에도 클래스 선택자를 이용하여 .menu스타일 안에 복사 붙여넣기 해주었다 mediaquery 알아보기 mediaquery는 웹 페이지를 보는 디바이스나 화면 크기의 특성에 따라 다른 스타일을 적용하는 쿼리입니다. @media를 사용하여 스마..

인천 일보 아카데미 32일차 -2- table태그 / ul , ol 태그 / margin , padding / position - 속성 / Float - 속성 / Float 해제후 적용 / Float 메뉴 만들기 [내부링크]

table 태그 기본 구성 섹션1 섹션2 섹션3 섹션4 섹션4 섹션5 table태그는 표를 만들때 주로 사용하는 태그입니다 table 태그는 다른 태그들과는 다르게 thead 태그와 tbody태그로 나눠서 사용되고 표를 만드는 태그이기 때문에 정보를 집어넣기 위해 tr ,td ,th ,tb 태그를 사용합니다 아래 사진을 참고해주세요 사진을 보면 알겟지만 thead에는 표의 헤더를 넣어주고 아래 tbody에는 표해더에 맞게 정보를 넣어준다 살제 사용에는 굳이 thead와 tbody를 쓰지 않고 th와 td 만주로 사용한다 th는 표의 헤더로 지정해주고 td는 표에 넣어줄 데이터로 사용된다 ul 태그(unordered list) , ol태그(ordered list) , li태그 기본 구성 안녕 하세요 ul ..

인천 일보 아카데미 32일차 -1- 선택자(selector) / 가상 선택자(hover) / hover 사용 - 감추고 보여주기 [내부링크]

태그 선택자 (2가지 이상 태그에 동일 스타일 적용) 태그 선택자는 태그를 지정하고 지정 태그 전체에 속성값을 적용하는 선택자입니다 2가지 이상의 태그에 속성값을 모두 주고 싶다면 ? 기본 문법 A , B { 속성 : 속성값 } 자손 선택자 (descendant selector) 기본 문법은 A공백B { 속성 : 속성값 } 자손 선택자는 A태그 안에 소속된 모든 B태그에 속성값을 줄때 사용한다 아래 사잔을 참고하자 자식 선택자(child selector) 기본 문법 A > B { 속성 : 속성값 } 자식 선택자는 A > B로 A태그 안에 있는 B태그에 속성값을 적용한다 아래 사진을 참고하자 자손 선택자와 자식 선택자는 설명만보면 비슷하기 때문에 헷갈릴수 있다 위 사진을 비교해서 보자면 자손 선택자는 di..

인천 일보 아카데미 31일차 -2- 사용해보며 알아보기 (요소 - 블록,인라인/ link 사용 / font 변경 / 선택자(selector)) [내부링크]

요소 - block , inline 사용해보기 출력 결과를 볼 때 태그의 사용에 따라 문자의 출력 방식이 다르다는걸 알 수있다 이유는 h , b , p 태그는 block 요소(태그)이기 때문이다 출력하면 위아래 +1까지 영역으로 아무도 올 수 없다 하지만 strong , i , del , sub , sup 태그는 inline 요소(태그)이기 때문에 출력문까지만 자신의 영역으로 옆에 붙어서 출력된다 이해가 안된다면 아래 사진을 참고하자! block 요소(태그) inline 요소(태그) 이미지 올려보기 / link 걸어보기 a 태그도 inline 요소(태그)이기 때문에 붙어서 출력되는걸 확인할 수 있다 href 속성은 링크를 받아 저장해주고 target속성은 열림 방식을 의미한다 또한 태그의 시작과 끝 사이..

인천 일보 아카데미 31일차 -1- / frontend_간단한 구성요소 / html - 문법 /html - 파일 구조 / 요소 - 블록 , 인라인 / 상대경로,절대경로 / 선택자(selector) [내부링크]

프론트엔드(frontend)의 큰 목차? 프론트엔드 개발자 웹 디자이너 : 말그대로 디자인하는사람이고 웹 퍼블리셔 : 디자이너가 디자인한 웹을 작동 가능하게 만들어 주는 사람이다 프론트(fromnt) 간단한 구성요소 HTML : 구조를 정의 (HTML은 프로그램 언어라고 하기는 힘들고 마크업 언어라고 한다) CSS : 꾸미는 용도 JAVASCRIPT : 동적기능을 담당 파일의 형식 .html 파일은 웹으로 실행한다 ( 대표적으로 크롬의 크로니움이라는 엔진이 있다 ) ( java를 실행하기 위해서 jdk가 필요한것과 같다 ) html 문법 - 시작 태그 div,p 태그는 모두 body 태그에 소속됨 div 태그에 소속된 부분 p 태그에 소속된 부분 - 종료 태그 종료 태그가 따로 없는 태그도 있음 대표적으..

인천 일보 아카데미 29일차 / 페이징(limit) / 게시판의 구성 / DB의 행동 구조 [내부링크]

풀어보기 - DB입장에서 보기 -- 2. 이메일 중복체크 -- 기존 가입되어 있지 않은 이메일로 가입하려고 한다면 select member_email from member_table where member_email = 'member_email7'; -- 멤버 컬럼에 없음 -- 기존 가입된 이메일로 가입하려고 한다면 select member_email from member_table where member_email = 'member_email0'; -- 멤버 컬럼에 있음 -- 6. 회원정보 수정화면 요청 select * from member_table where member_email = 'member_email3'; -- 특정 회원의 정보를 가져오고 -- 7. 회원정보 수정 처리(비밀번호 변경) up..

인천 일보 아카데미 27일차-1- 참조관계 / 참조관계-특징 / 참조관계 - 제약조건 [내부링크]

참조관계 알아보기 1:1관계 블로그를 비유로 1명의 회원은 하나의 블로그만 소유할 수 있다 1:N관계 게시판을 비유로 1명의 회원은 여러개의 글을 쓸 수 있다 , 1명의 회원은 여러개의 댓글을 쓸 수 있다 N:1 관계 비유가 없다 정말 잘 쓰지 않는다 N:M관계 매우 복잡하기 때문에 잘쓰지 않는다 대부분 N:1 , 1:M 관계로 분리하고 분리하 참조관계 알아보기 - 특징 참조관계가 맺어진 후에 부모테이블 삭제하는 경우 삭제 불가능하다 그렇기 때문에 자식 테이블도 삭제해야 삭제가 가능하다 참조관계 실습 constraint fk_comment1 foreign key(board1_id) references board1(id) -- constrint fk_commnet1 foreign key(board1_id)..

인천 일보 아카데미 28일차 - table 구조 변경 alter / ERD보는법 [내부링크]

27일차 풀어보기 - 정답 -- 13. 1번 고객이 주문한 도서 총 판매액 조회 select sum(o_saleprice) from orders where id = 1; -- X select sum(o_saleprice) from orders where customer_id = 1; -- O -- 17. 김연아고객(고객번호 : 2) 총 구매액 select customer_id , sum(o_saleprice) from orders where customer_id = 2 group by customer_id; -- X select sum(o_saleprice) from orders where customer_id = 2; -- O -- 둘다 가능-- -- 21. 7월 4일 ~ 7일 사이에 주문한 도서의 주..

인천 일보 아카데미 27일차 -2- ERD란 ? / ERD 만들어보기 [내부링크]

참조관계 - 풀어보기 각 테이블의 id 컬럼은 pk로 지정하고 auto_increment를 사용합니다. 그리고 orders 테이블의 customer_id는 customer 테이블의 id 컬럼을 그리고 book_id는 book 테이블의 id 컬럼을 참조합니다. drop table if exists book; create table book( id bigint auto_increment, b_bookname varchar(20), b_publisher varchar(20), b_price bigint, constraint pk_book primary key(id) ); desc book; select *from book; insert into book(b_bookname , b_publisher , b_pr..

인천 일보 아카데미 26일차 -2-서브쿼리 응용 / 제약조건 / 제약조건 확인 [내부링크]

서브쿼리 응용 풀어보기 -- 연습문제 -- 1. clark 보다 늦게 입사한 사원 조회 select * from emp where hiredate > (select hiredate from emp where ename = 'clark'); 전체 입사일 목록 clark의 입사일 -- 2. 부서번호가 20인 사원 중에서 전체 사원 평균 급여보다 높은 급여를 받는 사원 조회 select * from emp where deptno = 20 and sal > (select avg(sal) from emp); 전체 deptno 20인 회사원의 sal 목록 평균 sal -- 3. 2번 조회 결과에서 부서이름, 부서위치도 함께 조회 select * from emp e , dept d where e.deptno = 20..

인천 일보 아카데미 26일차 -1-그룹핑_having / date타입 문자표현 / 조인(join) / 서브쿼리(sub_query) [내부링크]

전날 배운 내용 _ 다시 해보기 having 사용해보기 _ 문법의 우선순위 알아보기 where > group by > having > order by 순으로 작성한다 date_format() - date타입을 문자로 표현하기 응용 문제 풀어보기 -- 1. 부서별 평균급여, 최고급여, 최저급여, 사원수 조회(평균급여는 소수점 둘째자리에서 반올림) select deptno as '부서번호' , round(avg(sal),1) as '평균급여' , max(sal) as '최고급여' , min(sal) as '평균급여' , count(deptno) as ' 사원수 ' from emp -- 해당 문제 조건에 맞게 테이블을 설정해줌 group by deptno order by deptno asc -- deptno을..

인천 일보 아카데미 25일차 -2 table_where-2 / table_like / 형변환 / 집계함수 / 그룹화 [내부링크]

table 좀 더 알아보기 - 부등호 사용 table 좀 더 알아보기 - 부등호 사용 응용 select * from emp where 2000

인천 일보 아카데미 25일차 - table_생성_사용하기 / table_where [내부링크]

table 생성 컬럼 타입 ? table_예시 만들고 싶은 테이블 id student_name student_mobile student_major 1 학생1 010-1111-1111 컴퓨터공학 2 학생2 010-2222-2222 로봇과 문법 -- table을 만들때 create table student( id bigint, student_name varchar(5), student_mobile varchar(20), student_major varchar(30) ); -- table에 값을 넣을때 insert into student(id,student_name.student_moblie,student_major) values(1, '학생1','010-1111-1111','컴퓨터공학'); -- 문자열은 싱..

인천 일보 아카데미 24일차 - mysql , 데이터베이스란? , mysql 계정만들기 [내부링크]

mySQL 다운로드 링크 https://dev.mysql.com/downloads/installer/ MySQL :: Download MySQL Installer Select Operating System: Select Operating System… Microsoft Windows Select OS Version: All Windows (x86, 32-bit) Windows (x86, 32-bit), MSI Installer 8.0.32 2.4M (mysql-installer-web-community-8.0.32.0.msi) MD5: 0f882590f8338adc614e9dc5cb00ca0b | Signatu dev.mysql.com mySQL 다운로드 방법 mySQL 설치 양식 (중요) !!비밀번호는..

인천 일보 아카데미 20일~23일 - 개인 프로젝트(콘솔 게임 만들기) [내부링크]

개인 프로젝트 (게임만들어보기) 그동안 배운 내용을 토대로 평소 만들어보고 싶었던 프로그램을 만들어보고 발표했습니다 저는 개인적으로 흥미가 있는 게임을 한번 만들어봤습니다 프로젝트 설계 이번 설계는 다 만들고 작성되었습니다 실제 처음부터 이렇게 작성되었다면 프로젝트 개발에 큰 도움이 되었겠지만 처음 설계를 해보고 중요성을 그당시에는 몰랐기에 프로젝트를 진행하면서 엄청 후회했습니다..... 결과물 실행 아직은 찍어내기 수준이기 때문에 재미는 없지만 그럴듯하게 만들어졌습니다 결과물 발표 이렇게 발표를 마치고 개인 프로젝트를 마무리했습니다^^

인천 일보 아카데미 19일차_상속-좀 더 알아보기 / 인터페이스란 ? [내부링크]

Jave _ 상속(Inheritance)이란 ? Java에서 상속이란 부모 클래스(물려주는 클래스) / 자식클래스(물려받는 클래스)로 나누어지고 상속받는 클래스에서 부모 클래스의 필드 / 메소드를 사용할 수 있게 하는것입니다 (단 private은 상속 불가) Jave _ 상속(Inheritance) 문법은 ? extends라는 키워드가 사용이 된다 메소드 재정의(method overriding) 재정의 = 다시 정의한다 부모가 가진 메소드를 자식이 물려받고 자식에게 맞게 수정하는것을 말합니다 단 , 리탄타입 / 메소드 이름 / 매개변수는 수정이 불가능합니다 실행문만 수정이 가능합니다 (재정의하는경우 @Override이라는 문구가 붙는다) @란 ? 소스코드를 컴파일해서 실행하기 전에 먼저 체크해서 실행하게..

인천 일보 아카데미 (저장용) refactorting 해보기 [내부링크]

수정전 Repository package day16; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; public class Map_ClientRepository { Map b = new HashMap(); Map c = new HashMap(); private static Map_ClientRepository repository = new Map_ClientRepository(); private Map_ClientRepository() { } public static Map_ClientRepository getInstance() ..

인천 일보 아카데미 18일차 Map으로 수정하기 [내부링크]

ArrayList를 Map으로 수정해보기 인천 일보 아카데미 13일차 do_while / try_catch_finally / 다형성 do_while을 사용해보기 > do , while 사용 > do를 이용한 반복문 사용의 예시입니다 > 메소드에서 사용되었다는 점을 참고해주세요! public static char genderCheak() { > 사용자의 성별 선택에 대한 메소드 입니 guping.tistory.com 13일차에 만들었던 은행 시스템에 사용된 ArrayList를 Map으로 수정해보는 시간이였습니다 수정 내용 중괄호도 생략이 가능하다 단! 실행문이 한줄일때만 가능하다 하지만 중괄호는 생략하는것보다 써주는게 더 좋다 Service를 Map으로 (왼쪽이 수정 , 오른쪽이 원본) Service_lo..

인천 일보 아카데미 17일차 코드리딩/리팩토링/Map으로 만들어보기 [내부링크]

공부법_코드 리딩_(필수 아님 추천임) 우변에서의 처리결과를 좌변에 대입하기 때문에 코드는 오른쪽부터 읽는게 좋다 혼자서 공부할때 체크하면서 공부하자 메소드 파악에 도움을주고 이해를 쉽게 할 수 있다 메소드 이해력이 높으면 다음에 내가 사용할때에도 큰 도움이된다 고유번호를 담는 DTO 프로그램 설계에는 중복되진않는 고유 번호가 들어간 DTO 필드가 있어야한다 이번 게시판 프로그램의 경우 bno를 게시글을 생성할때마다 1씩 증가하는 사용자가 임의로 수정할 수 없는고유번호로 지정했다 이렇게 고유번호 필드를 만들면 update나 delete 등 사용자 정보를 확인하는 메소드를 만들때 편리하다 refactorting_을 생활화하자 Repository에 있는 delete메소드는 boolean 이기 때문에 ture..

인천 일보 아카데미 16일차 primitive type / Wrapper class type [내부링크]

변수 대소문? 대소문자 차이가 아닌 Wrapper class type은 class 객체로 구문한다 그렇기에 값에 null을 넣을 수 있다 Wraooer class type을 사용을 권장하는 이유는 long은 값이 없으면 0으로 Long은 값이 없다면 null이 들어가지만 데이터베이스에서는 0도 값으로 치기 때문에 이런 상황을 대비해 null을 넣기위해 Long 사용을 권장한다 Map을 for문에 ? Map안에 저장된 정보중 원하는 부분만 출력하는 방법입니다 Map의 사용법을 배움과 동시에 접근이 어떻게 이루어지는지 알 수 있습니다 객체를 가져오고 그 객체안에 있는 StudentName 을 가져온다 이렇게도 사용할 수 있다 for문을 사용하여 key값을 대입하면서 key값 객체의 toString()을 실행..

인천 일보 아카데미 15일차_2 Map을 알아보자 [내부링크]

CRUD란 ? C. Create : 저장 R. Read : 읽기 , 조회 U. Update : 수정 D. Delete : 삭제 Map 이란? map 은 키와 value로 나누어지고 list , 배열과는 다르게 index가 자동으로 지정되는 게 아닌 key의 이름을 제작자가 지정할 수 있다 Map map1 = new HashMap(); // Map 이라는 인터페이스에 HashMap 이라는 클래스의 생성자를 사용 // Map 을 사용할때는 어떤타입의 key를 쓸건지와 어떤 타입의 value를 쓸건지 정해줘야함 // Map 이라는 class의 주요 메소드는 get() , put() , remove() 가 있다 List list1 = new ArrayList(); // List이라는 인터페이스에 ArrayLis..

인천 일보 아카데미 15일차_1 .gitignore만들기 [내부링크]

github 관리 팁 프로젝트 단위로 git을 업로드하자 실수로 다른 폴더에 git을 연결했다면 해당 폴더안에 git폴더를 지우자 git폴더는 숨김 파일이기 때문에 숨김 파일 보기를 켜줘야한다 git ignore github에 업로드할 때 제외할 파일을 설정하는 방법 github repository에 업로드한 파일중 지우고 싶은 파일이 있는 경우 명령어 git rm -r --cached. 명령어를 사용하면 연결된 폴더안에 있는 모든 파일을 찍어준다 굳이 이 명령어를 사용하는 이유는 쌩으로 gitignore만 사용하는 경우 가끔 제외한 파일이 업로도 되지만 git rm -r --cached. 는 폴더 안의 목록을 출력해주는 기능 외에도 캐시까지 지워 해당 폴더에서 github에 연결된적 있던 기록을 지워준..

인천 일보 아카데미 14일차 git_github ? -2 [내부링크]

git - github 좀 더 사용해보기 이상으로 github에 대해 간단하게 알아보는 시간이었습니다 교육원 pc에서 작업한 내용을 집에서 하기 이렇게 진행된다면 클론이 잘 적용된것이다 클론 설정한 처음 한번만 해주면된다 꼭 어디서든 수정한 파일을 github에 올렸다면 git pull origin main 을 이용하여 github에 올려둔 파일을 가져와야한다 pull을 하지 않고 또 따로 수정하면 버전오류로 골치아파짐 이클립스 - git , github 연동하기 git hub에 연결된 repository 주소 변경하는 방법 인천 일보 아카데미 14일차 git_github ? git_이란 ? > 형상관리 , 버전관리에 도움을 주는 툴 다운로드_주의하항 (다운로드 페이지 : https://git-scm.c..

인천 일보 아카데미 14일차 git_github ? [내부링크]

git_이란 ? > 형상관리 , 버전관리에 도움을 주는 툴 다운로드_주의하항 (다운로드 페이지 : https://git-scm.com/download/win ) 파일을 다운받고 설치하는 과정에서 주의사항 이후 명령프롬프에서 git --version으로 설치 확인하기 git_hub이란 ? 개발자들이 작업물을 업로드하고 파일이동을 돕는 커뮤니티? (업로드 파일의 공개여부는 본인이 설정) 다른점은 지정로컬(컴퓨터)를 설정하면 올린 파일을 수정하면 별다른 행동없이 그파일을 바로 올릴지 선택 가능하다 로컬에 git 사용자 설정하기 (명령 프롬프트 사용하기) 정보 확인 git config --global --list (띄어쓰기에 주의하자) (양식 예시) git config --global user.name 'gug..

인천 일보 아카데미 13일차 do_while / try_catch_finally / 다형성 [내부링크]

do_while을 사용해보기 > do , while 사용 > do를 이용한 반복문 사용의 예시입니다 > 메소드에서 사용되었다는 점을 참고해주세요! public static char genderCheak() { > 사용자의 성별 선택에 대한 메소드 입니다 do { System.out.println("성별 (1.남자 2.여자)>"); String gender = sc.next(); if(gender.equals("1")) { return 'M'; }else if(gender.equals("2")) { return 'F'; }else { System.out.println("잘못된 성별입니다"); } }while(true); } > do , while은 실행문의 조건이 false가 될때까지 반복합니다 > 하지만..

숙제)아이디 중복 체크 저장용 [내부링크]

아이디_중복 체크 _ 저장용 >내가 만든 아이디 중복 체크 public static void overlapCheck(List list ,UserDTO userDTO) { for (UserDTO s : list) { while (true) { if (s.getEmail().equals(userDTO.getEmail())) { System.out.print("중복된 아이디입니다\n다시입력 >"); userDTO.setEmail(sc.next()); } else if (!userDTO.getEmail().equals(s.getEmail())) { break; } } } } > 실행은 잘 되지만 선생님이 원하는 답은 아님 > 가장 큰 문제는 뭐가 문제인지 모르겠음 > 따로 알아본 결과 나는 저기에 사용된 use..

인천 일보 아카데미 12일차_2 만들며 익히기 (반복학습) [내부링크]

만들어보기_User_Main > 반복하여 코드와 사용방법을 좀더 빠르게 익혀보는 시간이였습니다 > 코딩에 빠르게 익숙해 질 수 있는 좋은 시간이였습니다 > 먼저 Main class로 사용자가 보기 편하게 메뉴를 출력하였고 > 입력받은 메뉴에따라 Service의 각메소드가 실행되게 하였습니다 public class UserMain { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); Userservice service = Userservice.getInstance(); > 싱글톤으로 만든 객체를 사용하는 방법 Util util = new Util(); bo..

인천 일보 아카데미 12일차_1 만들며 익히기 (반복학습) [내부링크]

만들어보기_Student > 그동안 배운 내용으로 프로그램을 만들어보며 익숙해지는 시간을 가져봤습니다 > 짧은시간안에 익히고 외워야하기 때문에 반복하며 배우는 시간이였습니다 > MAIN에는 크게 사용자에게 틀을 잡아주고 > 각 메뉴와 사용자의 입력정보는 Service메소드를 이용해 가공했습니다 public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); StudentService service = new StudentService(); Util util = new Util(); while(true) { System.out.println("====학사관리====");..

인천 일보 아카데미 11일차 4개의 클래스를 사용하여 만들어보기 [내부링크]

만들어보기_메인 > 11일차에서는 그동안 배운 내용들을 모두 합하여 > 프로그램을 만들어보는 시간을 가졌습니다 > 먼저 클래스 DTO , Repository , Service ,Main 으로 나누어 만들었습니다 Scanner sc = new Scanner(System.in); BoardServic service = new BoardServic(); while(true) { System.out.println("====게시판===="); System.out.println("1.게시글등록 2.리스트 3.읽기 4.수정 5.삭제 0.종료"); System.out.print("선택 >"); int menu = sc.nextInt(); > 각 메소드의 기능을 세분화 > 메인에는 메소드 명령어만 작성하여 코딩의 길이를..

인천 일보 아카데미 10일차 확장_상속자_오버라이딩 / 추상화 [내부링크]

확장을_알아보자 package day10; public class FruitMain { > 하나의 class에 새로운 Class를 생성하는것을 확장이라고 합니다 > 예시문을 살펴보며 알아보겠습니다 > extends Fruit 는 Fruit Class를 상속 받는다는 말이다 > 그렇기 때문에 Class 안에 필드와 메소드가 없어도 Fruit에 있는 필드와 메소드를 사용 가능 > 하지만 반대로 상속해주는 Class는 상속 받는 Class의 필드와 메소드를 마음대로 가져와 사용할 수 없다 class Fruit{ String name; boolean isSeed; public void remobeSeed() { isSeed = false; } } class Fruit2 extends Fruit{ String c..

인천 일보 아카데미 6일차 []배열로 만들어보기 [내부링크]

숙제_내가푼_오답 // 문제) 배열 num의 값을 앞으로 한칸씩 땡기시오 // 출력 예) {2,3,4,5,6,7,8,9,10,1} int num[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int num1 = num[0]; for (int i = 0; i < num.length; i++) { if (i == 0) { i = i+1; } System.out.println(num[i]); } System.out.println(num1); } > 배열의 이해를 도와주는 숙제 풀었지만 오답임... > for문 밖에 변수를 하나 만들고 0 번째 배열 칸에 있는 1을 대입함 > 이후 for문에서 i+1을 함으로 배열 num[]이 한칸 밀려서 출력하게함 > for문밖에서 num[0]을 넣어둔..

인천 일보 아카데미 5일차 []배열 알아보기 [내부링크]

로그인_로그아웃_만들기 !! 여기서 하나라도 이해 못하는 부분이 있다면 1일차부터 다시 복습해야함 !! !! 여기서 하나라도 이해 못하는 부분이 있다면 1일차부터 다시 복습해야함 !! > 사용자가 입력 가능하게 하는 scanner Scanner sc = new Scanner(System.in); >사용자 정보와 while문에 넣을 블리언 변수를 정리 String name = "guping"; String id = "guping"; String pw = "1234"; boolean run = true; boolean run1 = false; boolean run2 = false; >전체적인 부분을 반복하는 while문 while (run) { 로그인에 성공할 시 run1 에 true;를 대입하게하여 로그인..

인천 일보 아카데미 9일차 static을_알아보자 [내부링크]

static을_알아보자 public class Board { > 필드는 각각 개체가 고유하게 가진 데이터 > 스태틱을 알아보자 = 스태틱은 공유 static int number = 0; > class로 만들어진 모든 객체에서 데이터를 공유하는 필드 private int bno; private String title; private String writer; private int cnt; private String postDate; public Board() { number++; } public Board(int bon , String title , String writer , int cnt , String pstDate) { this.bno = bno; this.cnt = cnt; this.postDat..

인천 일보 아카데미 8일차 메소드로 만들어보기/ArrayList 알아보기 [내부링크]

클래스_복습 > 전날에 배운 내용을 한번 더 사용해보며 복습하는 시간을 가졌습니다 >먼저 클래스의 구성 요소 3가지 필드 생성자 메소드 입니다 ==========필드============================ public class People { private String name; 같은 클래스에서만 정보 변경이 가능합니다 > 그렇기에 정보를 클래스로 가져와 대입하고 다른 클래스로 불러오기 위한 메소드를 작성한 모습입니다 > 정보를 가져와 필드에 대입할 메소드는 메소드 이름 앞에 set을 사용하였고 > 필드의 정보를 다른 클래스에서 사용할때는 메소드 이름 앞에 get을 붙여 가독성을 높였습니다 public String getNane() { < 입력된 정보를 받아오는 메소드로 받아올 변수의 타입이..

인천 일보 아카데미 7일차 클래스_필드_메소드_오버로딩 [내부링크]

클래스_필드_메소드 package day7; public class Car {>이곳을 "생성자"라고 합니다 ==================================== String name; String tire; String color;>여기까지를 "필드" 라고 합니다 int speed;>클래스는 3가지로 나눕니다 ===================================== >"메소드"의 구조를 알아보겠습니다 접근제한자 리턴타입 메소드이름 매개변수 public void run () { speed = speed + 1; // 메소드 } 접근제한자 리턴타입 메소드이름 매개변수 public void speedRun () { speed = speed+2; } !!중요합니다!! 접근..

인천 일보 아카데미 (주말 숙제) [내부링크]

자판기_만들기 package day4; import java.util.Scanner; public class Ex05_drink { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int balance = 0; int a = 1000; int b = 1200; int c = 1500; int min = Math.min(Math.min(a, b), c); while (true) { System.out.printf("====자판기==== 현재잔액 : %,d\n", balance); System.out.println("1.콜라 (" + a + ")" + "2..

인천 일보 아카데미 4일차 up&down게임_만들기 / 숫자 랜덤 출력 [내부링크]

응용_검색_성적표만들기 package day4; import java.util.Scanner; public class Ex01_grade { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); while (true) { System.out.println("=====성적====="); System.out.print("이름>"); String name = sc.next(); System.out.print("국어점수 입력>"); int kor = sc.nextInt(); System.out.print("영어점수 입력>"); int eng = sc.nextInt(..

인천 일보 아카데미 3일차 배운 변수와 문법을 사용하여 만들어보기 [내부링크]

복습 package day3; public class 복습 { public static void main(String[] args) { // TODO Auto-generated method stub > 문제) for문으로 1~100까지 짝수의 합 > for(int i = i 먼저 변수 sum에 0을 대입하여 수가 0인 변수를 만들고 >for문을 작성하였습니다 for (int i = 1; i 이렇게 작성하고 프린트하면 1~100까지만 출력됩니다 >그렇기에 for문 안에 if문을 넣어 1씩 증가하는 i가 2로 나누었을때 나머지가 0과 같다면 >수가 0인 변수 sum에 더해주도록 하였습니다 >이후 for문 밖에서 sum을 프린트하여 2로 나누었을때 나머지가 0인 i를 모두 더한 값을 >출력하였습니다 > 문제)..

인천일보 아카데미 2일차 조건문 switch / 반복문 for / 반복문 while [내부링크]

숙제 문제)변수 a가 3의 배수이면 , 3의배수 , 5의 배수이면 5의배수 , 3,5둘다의 배수이면 둘다 Scanner sc = new Scanner(System.in); // Scanner sc 여기서 sc는 마음대로 변경 가능 >사용자가 작성을 해야하기 때문에 Scanner를 이용 사용하기 편하게 sc로 선언하였음 System.out.print("숫자를 입력해 주세요>"); int a = sc.nextInt(); // 여기서 sc.nextInt는 숫자 sc.next는 문자를 받음 >print로 사용자가 숫자를 어디에 입력해야할지 제시함 >sc.nextInt로 사용자가 작성한 수를 가져와 변수 int에 대입함 if(a == 0) { System.out.println("0입니다"); }else if(a%..

인천일보 아카데미 1일차 (오후) 조건문 if 와 Scanner [내부링크]

조건문_if 오전 시간에 배운 변수 언어를 대입하고 추가로 if문을 알아봤습니다 if문은 조건을 설정하고 조건이 충족되면 해당 코드를 실행합니다 간단하게 알아보는 if문 구조는 사진과 같이 if(조건){ 명령문 }else if(조건) { 명령문 }else 로 간단하게 구조식을 작성해 볼 수 있습니다 if문은 위에서 아래로 내려가며 조건을 검사하고 맞다면 명령문을 실행합니다 만약 위 사진과 같이 조건문이 둘 다 충족되는 경우 위에 있는 조건문이 실행됩니다 변수 언어와 if문 응용 예시 변수 언어와 if문 응용입니다 먼저 if를 이용하여 양수인지 음수인지 알아보는 식입니다 if에 조건 a가 0보다 크다면 실행문에 System.out.println()이용해 콘솔에 "양수 입니다"를 출력하게 하였습니다 이후 e..

인천일보 아카데미 수업 1일차 (오전) 변수 타입 _ 강제 형변환 [내부링크]

변수란 자바언어를 자동으로 변환해 주는 툴 다운로드 방법과 기본적인 변수를 선언하고 콘솔에 띄우는 구조식을 배웠습니다 위의 구조식은 int라는 변수의 이름을 age로 선언하고 float 이라는 변수의 이름을 weight라고 선언하였습니다 이렇게 이름을 선언한 변수안에 각각 49 , 70.44f 라는 수를 대입하고 System.out.println() 으로 콘솔에 프린트 사진과 같이 콘솔에 잘 보여지는걸 확인했습니다 정수_int 전 시간에 배운 변수를 사용하여 간단한 계산과 콘솔에 프린트 하는 법을 예습했습니다 변수는 int를 사용하였고 a,b까지는 수를 대입 나머지 c,d,e,f,g에는 a,b를 사용하여 간단한 계산식을 넣어 봤습니다 이후 System.out.println()이용하여 콘솔에 프린팅 해보았..