Git/GitHub: 버전관리와 원격 저장 협업의 핵심 도구
·
Git&GitHub
1. Git이란?Git은 소스 코드의 버전 관리를 위한 분산형 버전 관리 시스템(DVCS)이다. 코드 변경 내역을 추적하고 여러 사람이 협력하여 프로젝트를 진행할 수 있도록 도와준다. Git의 주요 기능은 코드의 변경 이력을 기록하고, 특정 시점으로 되돌아가거나, 여러 작업을 병합하는 등 다양한 버전 관리 기능을 제공한다.Git은 로컬(사용자 드라이브)에서 버전을 관리하므로 네트워크가 없어도 작업할 수 있다. 또한, 분산형 시스템이기 때문에 각 클라이언트가 전체 저장소의 사본을 가지고 있어, 중앙 서버에 문제가 발생해도 작업을 계속할 수 있다. 2. GitHub란?GitHub는 Git 저장소를 호스팅하는 클라우드 기반 서비스. Git과 달리 웹 기반 인터페이스를 제공하여 사용자들이 프로젝트를 보다 쉽게 ..
[spring] 로그인하기
·
시행착오
🪲문제상황public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String requestURI = request.getRequestURI(); System.out.println("요청 주소:" + requestURI); HttpSession session = request.getSession(); //사용자가 로그인정보를 하면 세션 메모리의 user에 저장 Object user = session.getAttribute("user"); System.out.println(user); if(user==null) { //로그인이 ..
[spring]회원정보 수정 - 비밀번호 체크하기
·
SPRING
회원정보를 수정하거나 로그인할때 비밀번호가 일치하는지 확인하는 로직이다. 민감한 정보를 확인할 때 많이 쓰인다. @RequestMapping("/CheckPassword") public ModelAndView checkPassword(String userid, String inputPassword) { // DB에서 사용자 정보 조회 UserVo user = userMapper.getUser(userid); ModelAndView mv = new ModelAndView(); // 입력된 비밀번호가 null이거나 비어있는 경우 if (inputPassword == null || inputPassword.isEmpty()) { mv.setViewNa..
[spring] 회원가입 - 아이디 중복 체크하기
·
SPRING
회원 가입을 할 때 아이디를 생성하게되는데 이때 기존의 사용자와 아이디를 겹치지 않게 해야한다. 이때, 사용하는 중복체크 로직이다. 1.fetch방식 사 // 아이디 중복 체크 @RequestMapping(value = "/CheckDuplication", method = RequestMethod.GET) @ResponseBody public String checkDuplication(String userid) { UserVo user = userMapper.getUser(userid); // DB에서 해당 아이디로 조회 if (user == null) { return "가능"; // 아이디가 존재하지 않으면 가능 } return "불가능"; // 아이디..
[java] 클래스 활용
·
JAVA
🔎클래스 사용 전 함수 사용 public static int add(int a, int b) { int r = a + b; return r; } public static void changeUpper(String name) { name = name.toUpperCase(); } public static void swap(int c, int d) { int t = c; //지역변수 t라서 swap의 기능이 제대로 안된다. c = d; d = t; System.out.println("c=" + c + ",d=" + d); }이때 스택은 각 함수마다 따로 있으며 리턴문은 변수 하나만 리턴할 수 있다.c=5d=8swap 메서드에서는 이렇게 swap이 된 상태로 나온다.  public static ..
[spring] 파라미터 다루기
·
SPRING
🌿파라미터 가져오기 ① // http://localhost/temp?a=hello&b=123 @GetMapping("/temp") // GET public String temp(String a, int b) { System.out.println("a=" + a); //a=hello System.out.println("b=" + (b + 3)); //b=126 return "none"; // none.jsp 없음 404 }넘어오는 파라미터 이름과 동일하기 때문에 @RequestParam이나 request.getParameter이 필요하지 않다.@GetMapping("/temp") : GET 방식@RequestMapping("/temp") : GET, POST 둘 다 받아 들일 수 있음.@Reques..
[spring]스프링 부트 MVC구조
·
SPRING
MVC 구조Model: 데이터와 비즈니스 로직을 처리한다. View: 사용자 인터페이스를 제공하여 데이터를 표시한다. Controller: 사용자 요청을 처리하고 모델과 뷰를 연결한다.1. ModelModel은 애플리케이션의 데이터 구조와 비즈니스 로직을 담당한다.package com.board.menus.vo;@Getter@Setter@ToString@NoArgsConstructor@AllArgsConstructorpublic class MenuVo { @NonNull private String menu_id; private String menu_name; private int menu_seq; } MenuVo.java:메뉴 데이터를 담는 VO(Value Object)이다. 메뉴 I..
[spring] 스프링 부트 Controller
·
SPRING
🌿ControllerMVC는 Model-View-Controller의 약자로, 애플리케이션을 세 가지 주요 구성 요소로 나누어 관리하는 디자인 패턴이다.@Controllerpublic class TestController { @RequestMapping("/") public String home() { return "home"; // /WEB-INF/views/ + home + .jsp }}@Controller는 이 클래스가 Spring MVC의 컨트롤러 역할을 한다는 것을 나타내고, @RequestMapping은 웹 애플리케이션에서 특정 URL 요청(HTTP요청)을 메서드와 연결(mapping)한다. 구현: @Controller 어노테이션이 붙은 TestController 클래스의 home..
[spring] Spring Framework에서의 datasource 설정 및 Spring Boot migration
·
SPRING
Java 코드에서 Bean 생성BasicDataSource dataSource = new BasicDataSource();dataSource.setDriverClassName("oracle.jdbc.OracleDriver");dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:xe");dataSource.setUsername("hr");dataSource.setPassword("1234");이렇게 jsp내에서 직접 datasource를 설정하게되면 한 파일안에서 명확하게 드러나지만 코드가 길어지고 복잡해졌을때 가독성이 떨어지고 객체 간의 dependency를 관리하기 어렵다. 마치 요리 식재료들을 펼쳐놓고 요리를 하는 것과 같다. 요리를 할때 빠르게 재료들을 가져..
[jsp]로그인 및 회원가입 페이지 만들기
·
JSP
🌿 loginform.html(로그인 화면) 아이디 암호 회원목록아이디와 비밀번호를 입력 후 login.jsp로 POST 요청을 보내 로그인 절차를 진행한다. 🌿login.jsp(로그인 처리)회원정보"; html+="아이디:"+ rs.getString("userid")+""; html+="이름:"+ rs.getString("username")+""; html+="이메일:"+ rs.getString("email")+""; html+="가입일:"+ rs.getString("rdate")+""; html+="뒤로";}else{ //없는 회원 html+="존재하지 않는 회원입니다."; html+="회원가입"; h..