본문 바로가기

백엔드35

[Java] 클래스 변수와 인스턴스 변수의 차이(static 변수와 non-static 변수) 목차 클래스 변수, 인스턴스 변수 클래스 변수, 인스턴스 변수, 지역 변수가 메모리에 적재되는 위치 클래스 변수(Static)의 주의점, 클래스 변수가 필요한 이유 ​ 클래스 변수, 인스턴스 변수 클래스 변수(Static 멤버) 클래스 내에 Static 키워드로 선언된 변수 처음 JVM이 실행되어 클래스가 메모리에 올라갈 때 ~ 프로그램이 종료될 때까지 유지 클래스가 여러 번 생성되어도 Static 변수는 처음 딱 한 번만 생성됨 동일한 클래스의 모든 객체들에 의해서 공유됨 인스턴스 변수(Non-static 멤버) 클래스 내에 선언된 변수 객체 생성 시마다 매번 새로운 변수가 생성됨 클래스 변수와 달리 공유되지 않음 아래 예제에서 StaticTest 인스턴스를 두 개 생성한 후 staticTest1의 클.. 2021. 8. 25.
[Network] 동기 vs 비동기, 블로킹 vs 논블로킹의 차이 목차 동기(Sync)와 비동기(Async) 블로킹(Blocking)과 논블로킹(Non-Blocking) 예제 - 동기+블로킹, 동기+논블로킹, 비동기+블로킹, 비동기+논블로킹 이번 시간엔 동기와 비동기, 블로킹과 논블로킹에 대해 알아보려고 한다. 이전에 동기와 비동기에 대해서 공부할 때 단순히 하나의 작업이 처리된 후에 다음 일이 처리되면 동기, 여러 작업이 동시에 처리되면 비동기라고 이해하고 있었는데, 동기와 비동기를 말 할 때 블로킹/논블로킹의 개념을 함께 이해해야 된다는 것을 알게 되었다. 그동안 내가 단순히 동기와 비동기 개념으로 이해하고 있었던 것은 엄밀히 따지자면 동기+블로킹, 비동기+논블로킹이었던 것 같다. 동기/비동기와 블로킹/논블로킹은 엄연히 다른 개념으로 한 번 짚고 넘어갈 필요가 있다.. 2021. 8. 25.
[Javascript] Javascript Date → Java LocalDate/LocalDateTime 변환 오류 프로젝트를 진행하다가 자바스크립트에서 Date 타입 변수를 자바로 보낼 때 typeMismatch 에러가 발생하였다. 사내 프로젝트를 진행하다가 발생한 에러이기 때문에 간단한 예제로 해당 오류를 재연해 보았다. 에러 Resolved [org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult typeMismatch Field error in object 'reservation' on field 'checkInTime' Resolved [org.springframework.validation.BindException: org.springframework.validation.BeanP.. 2021. 8. 12.
[Error 해결법] Spring Boot - https to http redirect 에러 Error 상황 회사에서 Spring으로 프로젝트 개발 중 로컬에서는 문제없이 동작했는데 개발/운영 서버에 배포한 후 리다이렉트된 페이지가 뜨지 않고 Chrome 개발자도구 console에 https to http redirect 에러가 발생했다. 원인 특정 url로 요청할 때 Spring에서 아래와 같이 redirect: 를 이용하여 리다이렉트 시켜주었는데 redirect:는 현재 프로토콜이 무엇이든 간에 기본적으로 http로 리다이렉트 된다. 프로젝트에서는 https를 사용하고 있었는데 redirect:를 사용함으로써 http로 프로토콜이 변경되며 문제가 생긴 것이었다. return "redirect:newPage"; 해결법 나는 별다른 설정은 하지 않고 굳이 Spring에서 redirect: 를 이.. 2021. 8. 6.
[CS] 고정소수점과 부동소수점 고정 소수점과 부동 소수점은 이진수만을 사용하는 컴퓨터에서 소수점이 포함된 실수를 표현하는 방식이다. ​ 고정 소수점(Fixed Point)​ 소수점이 고정된 형태이다. 상위 1비트 부호비트(양수 0, 음수 1)와 정수부, 소수부로 구성된다. 16bit의 경우 부호비트 1bit, 정수부 7bit, 소수부 8bit로 구성된다. 표현법 정수부 - 2진수 변환 방법 사용 소수부 - 정수부의 반대(2를 곱해가면서 진행), 소수점부터 오른쪽으로 채워서 나머지는 0으로 채운다. # 10.375 (결과는 위에서 아래로) 0.375 * 2 = 0.75 # 0 0.75 * 2 = 1.5 # 1 0.5 * 2 = 1 # 1 # 10.375 => 1010.011 ​ 부동 소수점(Floating Point) 고정 소수점 방식.. 2021. 8. 6.
[Network] RestAPI, Restful이란? ​ RESTful REST API를 제공하는 웹 서비스를 RESTful하다고 한다. REST 원리를 따르는 시스템 ​ Rest(REpresentational State Transfer) 자원을 이름으로 구분하여 해당 자원의 정보를 주고받는 모든 것.웹 사이트의 이미지, 텍스트, DB 등 모든 자원에 고유한 ID인 HTTP URI를 부여함. ex - DB의 학생정보가 자원일 경우 'students'를 자원의 표현(이름)으로 정함. 데이터가 요청되어 지는 시점에 JSON이나 XML을 통해 데이터를 주고 받는다. 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나. HTTP URI를 통해 자원을 명시하고 Post, Get, Put, Delete, Head와 같은 HTTP Method를 통해 .. 2021. 7. 12.
[Java] Overloading과 Overriding 공통점과 차이점 공통점 method 정의 시 이름을 같게 정의한다. 사용이 편리하다. 다형성 효과 Overriding(메서드 재정의) super class의 메서드를 sub class에서 재정의해서 사용하는 것 상속이 전제가 되어야 한다 상속받은 메서드와 전체적인 기능은 동일하지만 상세 구현이 다를 경우 기존의 상속 받은 메서드를 사용할 수 없으므로 새로운 메서드를 추가로 선언해야 한다. 규칙 메서드명, 인자, 리턴 타입을 동일하게 선언 Access Modifier(접근 제한자)는 부모와 같거나 부모보다 넓은 범위로 정의 부모 메서드와 같은 예외를 던지거나 예외를 안던진다. 리턴 타입 1.7 버전 : 상속 받은 메서드와 리턴 타입이 반드시 같아야 한다. 1.8 버전 : 상속 받은 메서드와 리턴 타입이 같거나 sub를 리.. 2021. 7. 11.
JPA란? (Spring Boot + JPA 환경설정 및 사용법) JPA란? Java Persistance API. 자바의 ORM(Object-Relational Mapping) 표준 기술이다. 즉 자바의 객체와 관계형 DB를 매핑하는 기술이다. Hibernate Hibernate란? ORM Framework 중 하나이다. JDBC를 이용하다가 MyBatis를 이용하면 훨씬 편하고 코드가 간결하며 유지보수가 편하다. 마찬가지로 Hibernate도 MyBatis에 비해 코드가 훨씬 더 간결하며 객체지향적이다. 장점 1. 생산성 2. 유지보수 단점 1. 어렵다. 2. 성능상 문제가 있을 수 있다. 구글 지역별 비교 분석에서 볼 수 있듯이 한국에서는 MyBatis를 많이 사용하지만 전세계 개발자들은 Hibernate를 많이 사용한다. 사용법 MyBatis나 기존에 자바에서 .. 2020. 3. 18.
반응형