전체 글 171

[Spring Boot] 게시판 제작하기(4)

컨트롤러 이번에는 게시판에서 CRUD 기능을 구현하기 위한 컨트롤러(BoardController)를 제작해보겠습니다. 여기서는 두가지 방식이 있습니다. RepositoryEntity를 선언하는 방식과 ModelAndView를 사용하는 방법으로 나누어 진행해보겠습니다. RepositoryEntity RepositoryEntity를 사용하고 타입은 와일드카드로 정의해서 데이터베이스에 저장된 값을 한번에 조회할 수 있습니다. READ @GetMapping("/board-list") public ResponseEntity getBoardList() { ResponseDTO responseDTO = new ResponseDTO(); try { List boardList = boardService.getBoardL..

[Spring Boot] 게시판 구현하기(3)

사용자 사용자 혹은 회원에 대한 정보를 관리하는 페이지를 제작해보겠습니다. 엔티티(entity)를 제작하고 레포지토리를 선언하고 서비스를 만들고 연결해보겠습니다. 먼저 User 이름의 엔티티를 생성합니다. package com.bit.springboard.entity; import jakarta.persistence.*; import lombok.Data; import java.time.LocalDateTime; @Entity @Table(name = "T_USER") @Data public class User { @Id @GeneratedValue( strategy = GenerationType.IDENTITY ) private long id; @Column(unique = true) private S..

[Spring Boot] 게시판 구현하기(2)

이어서 BoardRepository를 설정합니다. JpaRepository가 있어서 이것을 상속받아서 메소드를 별도로 구현하지 않아도 제공된 다양한 메소드(List, findAll, List, findAll(Sort sort), saveAll, void flush, T findById 등)를 사용할 수 있습니다. package com.bit.springboard.repository; import com.bit.springboard.entity.Board; import org.springframework.data.jpa.repository.JpaRepository; public interface BoardRepository extends JpaRepository { } 다음은, DB에 있는 내용을 한번에 ..

[Spring Boot] 게시판 구현하기(1)

스프링 부트 Spring framework는 지원이 잘 안되어, Spring Boot에 대해서 알아보았습니다. 게시판을 구현하기 위해 다양한 방식을 지원하지만, JPA를 활용해보겠습니다. JPA는 객체, 즉 테이블을 구성하기 위해 Entity(엔터티, 엔티티)를 사용합니다. Board라는 엔티티(클래스)를 생성합니다. 코드를 살펴보겠습니다. @Entity @Table(name="T_BOARD") @SequenceGenerator( name="BoardSeqGenerator", sequenceName = "T_BOARD_SEQ", initialValue = 1, allocationSize = 1 ) ... 1) @Entity 어노테이션을 통해 엔티티 클래스로 지정할 수 있습니다. 2) @Table은 테이블..

[Spring Framework] 게시판 구현하기(1)

회원 관련 기능을 구현 1. 요청별 method 타입을 다르게 할 수 있습니다. 1) get 요청으로 가는 경우 - 브라우저 주소창에 주소를 입력하는 경우는 get 요청 - a태그 클릭해서 링크로 이동 - form의 method 속성이 get으로 설정되어 있을 때 - redirect로 다른 요청 url을 호출할 때 - ajax의 type이 get으로 설정되어 있을 때 2) post 요청으로 가는 경우 - form의 method 속성이 post로 설정되어 있을 때 - ajax의 type이 post로 설정되어 있을 때 2. get과 post 사용 1) get 요청: 데이터 목록을 조회하거나 화면으로 이동할 때 주로 사용합니다. 2) post 요청: 데이터의 입력, 수정, 삭제, 특정 데이터 조회 등에서 사용..

[Java] 파일 정리

파일 정리 문제 살펴보기 문제 요약 파일을 확장자 별로 정리해서 개수를 정리합니다. 이것을 확장자 기준 사전 순으로 오름차순 정렬하여 출력합니다. 확장자는 . 을 사용하므로 그걸 쪼개서 이름과 개수(빈도)를 알파벳 순서대로 출력하면 되는 문제입니다. 전략 기존에 잘 알려진 HashMap을 사용해볼 수 있습니다. 다만 알파벳 순서대로 차후에 sort 작업을 수행해야 합니다. 새롭게 등장한 TreeMap 을 사용해본다. 자동으로 알파벳 순서대로 정렬해주므로 편리합니다. 공통 사항 Java로 백준에 제출할 때에는 Main 으로 클래스 이름을 지정해야 합니다. 입력은 Scanner 객체 sc로 받습니다. 숫자와 문자가 동시에 입력받아야 한다면, 두가지 전략이 있습니다. 숫자는 sc.nextInt() 로 받고, ..

[Java] 럭키 스트레이트

Java로 풀어보는 간단한 백준 문제 풀이 18406번 럭키 스트레이트 문제입니다. 문제 요약 N이라는 점수가 주어질 때, 반으로 나눈 첫번째 자릿수의 합과 나머지 자릿수의 합이 동일해야 합니다. 여기서 저는 N이라는 숫자를 받아서, 첫번째 요소와 두번째 요소로 나누어보고자 했습니다. 그러기 위해서 문자열로 변환하고 반으로 나누어 각각의 배열 요소의 합을 구하는 것을 떠올렸습니다. 점수 N이 주어지고, 이를 반으로 쪼개어 첫번째 요소의 자릿수 합과 두번째 요소 자릿수 합이 일치하면 “LUCKY”, 아니면 “READY” 출력한다. 코드로 살펴보기. 백준에서 코드를 입력할 때, Java의 경우에는 Scanner 패키지를 사용해서 입력값을 받도록 만들어줘야 합니다. 1. 먼저 해당 점수를 Scanner로 입력..

[Ncloud] 나만의 리눅스 서버 만들기

네이버 클라우드로 Linux 서버를 만들어보겠습니다. 리눅스에 대해 먼저 살펴봐야겠죠? Linux: "Just For Fun!" 재미로 시작한 리눅스 리눅스는 헬싱키 대학 리누스 토발즈가 만들었습니다. 당시 자율소프트웨어 재단(FSF)에서 야심차게 내놓은 UNIX 유닉스라는 OS가 있었지만 성능이 안 좋았고 리누스가 재미로 만든 Linux가 좀 더 잘 만들어지고 성능도 더 좋았습니다. 이것을 FSF 재단에 기증했고, 그의 이름을 따서 리눅스가 되었죠. 리눅스는 커널, 라이브러리, 소프트웨어로 구성되어 있습니다. 이 리눅스는 다양한 재단에서 자유롭게 배포하고 사용할 수 있게 했습니다. 그에 맞게 다양한 리눅스 파생 OS들이 있죠! Suse, Ubuntu, CentOS, RedHat, AWS Linux 등이..

[Jquery] Selector

Selector(선택자) 직접 선택자 직접 선택자는 전체, 아이디, 클래스, 태그, 그룹 총 5가지 선택자로 구성됩니다. 전체 선택자는 DOM의 모든 태그를 한번에 선택합니다. 기호는 $("*") 이고 달러와 all(*) 표시만 기억하면 쉽게 쓸 수 있죠. 아이디 선택자는 해당 아이디명인 태그를 고르고, $("#아이디명") 으로 사용합니다. 클래스 선택자는 클래스를 고르고 $(".클래스명") 이렇게 씁니다. 그룹 선택자는 여러 선택자를 묶어서 고를 수 있고, $("선택자1, 선택자2, ...") 이렇게 사용합니다. 선택자 n에는 아이디, 클래스, 태그 선택자 등 다양하게 입력이 가능해서 유용합니다. 종류 코드 전체 선택자 $("*") 아이디 선택자 $("#아이디") 클래스 선택자 $(".클래스명") 태그..

[Jquery] Jquery 기초

Jquery Jquery는 자바스크립트의 DOM 객체 조작을 도와주는 라이브러리 입니다. 선택자부터 이벤트, 애니메이션 등 DOM 객체를 선택하거나 DOM 객체에 특정 이벤트를 만들고 애니메이션 효과를 추가할 때 유용합니다. 자바 스크립트만으로 작성하기 보다 편하죠. 예를 들어, 순수 자바스크립트로는 두 줄을 작성해야 box 객체를 조작할 수 있습니다. //순수자바스크립트 선택자 const box = document.getElementById("box"); const box = document.querySelector("#box"); jquery로 작성해보겠습니다. // jquery 선택자 const box = $("#box"); 훨씬 간단하죠? Jquery 장점 DOM 객체를 조작할 때 자바스크립트 네..