static 변수 & static 메서드
·
Java(알아가는 과정)
static 이란?static 이란 '정적인, 고정된' 이라는 사전적 의미를 가진다.static 키워드는 주로 멤버 변수와 메서드에 사용하며 다른 용어로는 정적 필드, 정적 변수, 클래스 변수, 정적 메서드라고도 하며 이 둘을 정적 멤버(클래스 멤버)라고 한다.--> 객체(인스턴스)에 소속 X, 클래스에 고정되어 있다.static 변수클래스를 통해서 생성된 객체의 수를 세는 프로그램// Data1 클래스public class Data1 { public String name; // 인스턴스 멤버 변수에 카운트 저장 public int count; public Data1(String name) { this.name = name; count++; }}====..
자바 메모리 구조
·
Java(알아가는 과정)
자바 프로그램이 실행되면, JVM(Java Virtual Machine)은 OS(운영체제)로부터 메모리를 할당받고, 그 메모리를 자바 프로그램에 맞게 여러 영역으로 나누어 사용하게 된다.자바 메모리 구조 자바의 메모리 구조는 크게 아래의 3개로 나뉜다메서드(static) 영역- Class의 정보, static 변수(Class 변수 = 필드), 메서드와 생성자 코드등 모든 실행 코드가 존재.- static 영역에 있는 것은 어디서든 접근 가능함- JVM이 종료 시( 프로그램 종료) 메모리에서 해제 됨스택(Stack) 영역 - 자바 실행 시, 하나의 실행 스택 생성, 각 스택 프레임은 기본 자료형, 변수, 중간 연산 결과, 메서드 호출 정보 등을 포함** 스택 프레임 : 스택 영역에 쌓이는 네모 박스가 하나..
캡슐화(Encapsulation)
·
Java(알아가는 과정)
캡슐화객체 지향 프로그래밍의 중요한 개념 중 하나!!!데이터(변수)와 데이터를 처리하는 메서드를 클래스로 묶어 독립적으로 동작하지 않도록 하거나 불필요한 정보를 노출시키지 않는 개념 (외부에서의 접근 제한) * 코드의 유지보수성을 향상* 객체의 내부 구현을 외부로부터 숨김 (정보 은닉)* 객체의 내부 상태를 제어하고, 잘못된 접근으로부터 보호함 아래의 코드는 캡슐화를 적용한 예시 이다package javabasic.access.b;public class BankAccount { private int balance; // 금액 검증 private boolean isAmountValid(int amount) { // 금액이 0보다 커야 함 return amount >..
접근 제어자
·
Java(알아가는 과정)
접근 제어자의 종류private : 모든 외부 호출 제한 (같은 클래스 내부에서만 허용)default (package-private) : 같은 패키지안에서 호출 허용protected : 같은 패키지안에서 호출 허용, 패키지가 달라도 상속 관계의 호출 허용public : 모든 외부 호출 허용가장 많이 차단 ( private -> default -> protected -> public) 가장 많이 허용package-private( = default)접근 제어자를 명시하지 않으면 같은 패키지 안에서 호출을 허용하는 defalut 접근 제어자 적용default : 접근 제어자의 기본값으로 사용되기 때문에 붙여진 이름package-private : 더 정확한 표현이다. 왜냐면, 이 접근 제어자를 사용하는 멤버는 ..
JSON, @RequestBody , @ResponseBody
·
Stydy
클라이언트에서 서버로 HTTP 요청(Request)메시지를 보내면, 서버는 클라이언트로 HTTP 응답(Response)메시지를 보낸다. 이러한 HTTP 메시지에는 본문(body)가 존재하며, 이 본문에는 데이터가 포함이 되어 있다.스프링(Spring)에서 제공하는 @RequestBody와 @ResponseBody 어노테이션을 이용하면, 이 본문에 담긴 JSON 데이터를 손쉽게 주고받을 수 있으며 @RequestBody는 클라이언트가 보낸 JSON 데이터를 자동으로 Java 객체로 변환해주고, @ResponseBody는 서버의 Java 객체를 JSON 형식으로 응답 본문에 담아 클라이언트로 전달을 한다.JSON( JavaSCript Object Notation )이란?키-값 쌍으로 이루어져 데이터를 표현하..
로그아웃 구현
·
Final Project
로그아웃은 스프링 시큐리티에서 제공하는 기능으로 구현 -> logout()메서드 : Spring Security의 기본 로그아웃 처리를 설정하는 메서드 @Beanpublic SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { // 모든 페이지에 대한 접근권한 설정, 사이트 위변조 방지 해제 http //authorizeHttpRequests 어떤 요청에 대해 어떤 권한이 필요한지 설정 .authorizeHttpRequests(auth -> auth //.requestMatchers : 특정 URL 지정 // 인증 없..
Mypage-예약 내역, 쿠폰
·
Final Project
예약내역과 쿠폰을 불러오는 섹션은 같이 작성을 해보도록 하겠다. 모두 말그대로 사용자가 예약한 내역, 사용자가 내려받은 쿠폰을 조회하는 섹션이다.예약 내역 조회아래와 같이 javaScript로 서버에 요청을 하고/*-------------예약내역 조회-----------------*/function loadReservations() { $.ajax({ type: 'POST', url: '/reservation', success: function(response) { if (response.success) { const reservation = response.reservation || []; // 예약 내역 배열 ..
Mypage-로그인 관리(로그이력)
·
Final Project
로그인관리 섹션에서는 마지막 로그인날짜와 접속한 서버의 ip주소를 기록하여 내역을 나타내고,날짜 선택기를 사용하여 날짜별로 이력을 검색할 수 있게 구현했다.*** IP 주소가 127.0.0.1로 나타나는 이유로컬 개발 환경에서 애플리케이션을 실행하고 있기 때문에 IP 주소가 127.0.0.1로 나타난다.로컬호스트(127.0.0.1)는 자신의 컴퓨터를 가리키는 IP주소로, 이는 네트워크를 통해 컴퓨터 내부에서만 통신할 때 사용 된다. 로컬 개발 환경 : 애플리케이션을 localhost주소와 포트(8080)로 실행하면 모든 네트워크 요청은 자신의 컴퓨터 내에서만 이루어진다. 클라이언트가 요청하는 출발지 주소와 받는 곳도 자기 자신이 되어서 127.0.0.1로 기록이 된다!로그인 기록을 조회하기 전에! 로그인..
Mypage-회원 탈퇴
·
Final Project
회원 탈퇴 과정에서 즉시 삭제하지 않고, 회원 상태를 ACTIVE에서 DELETE로 업데이트한 후, 일주일 후에 삭제를 하는방식으로 개발을 진행했다.페이지는 아래와 같이 구현을 하였고 회원테이블에 회원상태와 탈퇴사유 컬럼을 추가했다./*-------회원 탈퇴 섹션------*/document.getElementById("withdrawalForm").addEventListener("submit", function(event) { event.preventDefault(); // 기본 제출 막음 // 동의 체크 박스 체크 여부 확인 const confirmationChecked = document.getElementById("confirmation").checked; if (!confi..
Mypage-내정보수정
·
Final Project
가장 먼저 mypage에 내정보수정 섹션을 먼저 구현하려고 하고, 그 중 비밀번호와 휴대폰 번호 수정이 가능하도록 설정 했다.내정보에서 아이디,비밀번호,이름,휴대폰 번호 이렇게 4가지의 정보를 나타냈고, 아래와 같이 작업을 진행 했다.내정보가져오기// 마이페이지로 이동 (사용자 정보 가져오기)@GetMapping("/mypage")public String mypage(Model model, @CookieValue(value = "Authorization", required = false) String token) { String userId = jwtUtil.getUserIdFromToken(token); // 현재 로그인한 유저 식별키 UserDTO userDTO = memberService..
bomhyeming
꿈꾸는 개발자