전체 글 30

[JAVA] 7. 자주 쓰는 어노테이션(@) 종류

@Override What : 해당 메소드가 부모 클래스에 있는 메소드를 Override 했다는 것을 명시적으로 선언. Why : 만약 매개 변수가 하나 빠진 상태로 Override했을 경우, 명확하게 "이 메소드는 Override 된거니깐 내가 잘못 코딩했으면 컴파일러 너가 알려줘." 라고 지정해주는 것. @Deprecated What : 미리 만들어져 있는 클래스나 메소드가 더 이상 사용되지 않는 경우 선언. Why : "얘는 더 이상 사용하지 않으니까 그렇게 알아두고, 누가 이거 쓰면 경고 한번 해줘." 라고 지정해주는 것. @SupressWarnings What : 코딩하다 간혹 컴파일러에서 경고를 줄 때 제외시키기 위해 선언. Why : "얘는 일부러 이렇게 코딩한 거니까 너가 경고를 해 줄 필..

Java 2021.04.29

[JAVA] 6. StringBuffer vs StringBuilder

String은 immutable(불변의)한 객체다. String 문자열을 더하면 새로운 String 객체가 생성되고, 기존 객체는 버려진다. 그러므로, 계속 하나의 String을 만들어 계속 더하는 작업을 한다면, 계속 쓰레기를 만들게 된다. ex1) String text = "Hello"; text = text + " world"; //첫번째 text 객체는 쓰레기가 된다. 자바의 가비지 컬렉션이 계속 일을 하게끔 되므로 성능저하를 일으킨다. 이런 단점을 보완하기 위해서 나온 클래스가 StringBuffer와 StringBuilder다. 이 둘의 간단한 차이점은, StringBuffer Stringbuilder Thread Safe win lose Speed lose win ex2) StringBuil..

Java 2021.04.29

[JAVA] 5. 일부 완성되어 있는 abstract 클래스

abstract클래스에 대해 결론부터 말하자면, 설계 -> 개발 프로세스 단계에서 설계 단계를 interface 선언. 개발 단계를 해당 class 및 Impl구현이라고 했을 때, 설계와 실제 개발 사이의 중간 단계를 위한 예약어라고 볼 수 있다. 인터페이스를 선언하다 보니, 어떤 메소드는 미리 만들어 놓아도 문제가 없지만 해당 클래스를 다 만들기엔 애매하다. 그래서, 아주 공통적인 기능을 미리 구현해 놓으면 많은 도움이 되기 때문에 abstract클래스를 만든다. ex) public interface MemberManager { public boolean addMember(MemberDTO member); } public class MemberManagerImpl implements MemberMana..

Java 2021.04.29

[JAVA] 4. Static의 쓰임새와 Static 블록

Static은 객체를 생성하지 않아도 메소드를 호출할 수 있는 마법의 메소드. ------------------------------------------------------------------------ ex) public class ReferenceStatic { public static void main(String args[]) { ReferenceStatic.staticMethod(); //객체 생성 없이 바로 메소드 호출 } public static void staticMethod() { //static 메소드 선언 System.out.println("This is a staticMethod."); } } ----------------------------------------------..

Java 2021.04.29

[JAVA] 3. 오버로딩(overloading) vs 오버라이딩(overriding)

오버로딩(overloading) - 확장 public void print(String stringData) {} public void print(int intData, String stringData) {} - 두 메소드처럼 이름만 같고, 매개 변수가 다른 것이 오버로딩. - "같은 역할을 하는 메소드는 같은 메소드 이름을 가져야 한다. 다만, 전달하는 매개변수의 타입과 갯수는 여러가지이므로 매개변수 선언만 다르게 한다." 오버라이딩(overriding) - 덮어 씀 (부모 클래스의 기능은 무시하고 자식 클래스에서 덮어 씀) - 자식 클래스에서 부모 클래스에 있는 메소드와 동일하게 선언하는 것을 "메소드 overriding"이라 함. - overriding된 메소드는 부모 클래스와 동일한 리턴 타입을 가..

Java 2021.04.29

[JAVA] 2. 자바의 변수 종류는 총 4가지

개념 지역 변수 (local variables) - 중괄호 내에서 선언된 변수 - 메소드 안이든 밖이든 중괄호만 있으면 됨.. 매개 변수 (parameters) - 메소드에 넘겨주는 변수 인스턴스 변수 (instance variables) - 메소드 밖에, 클래스 안에 선언된 변수. - 앞에 static이라는 예약어가 없어야 함. 클래스 변수 (class variables) - 메소드 밖에, 클래스 안에 선언된 변수 중에서 static 예약어가 있는 변수 생명 주기 1. 지역 변수는 선언된 중괄호 내에서만 유효함. 2. 매개 변수는 메소드 호출 시 시작되고 끝나면 소멸됨. 3. 인스턴스 변수는 객체가 생성될 때 생명이 시작되고, 그 객체를 참조하고 있는 다른 객체가 없으면 소멸됨. 4. 클래스 변수는 클..

Java 2021.04.29

[JAVA] 1. 자바 파일 컴파일 과정

*** 자바의 신(이상민 저)을 공부한 내용 중에 기억해야 할 개념들을 정리해 놓은 글 입니다.*** *자바 컴파일 및 실행 절차 1. .java라는 확장자로 되어 있는 소스를 컴파일하면, 2. .class라는 확장자를 가진 파일이 생성되어 디스크에 저장됨. ------------------------------------------------------------------------- 이 .class 파일은 바이너리 파일로 되어 있기 때문에 에디터에서 열어도 보기 힘듦. javac.exe(Windows) 또는 javac(Mac)이라는 프로그램이 컴파일러 역할을 수행. ------------------------------------------------------------------------- 4..

Java 2021.04.29

AWS + SpringBoot + Mustache + Jar 404에러

Spring + Jsp 환경에서만 개발할땐 몰랐던 내용들을 springboot를 공부하면서 많이 배운다... 일단 Jsp로만 개발하려다가 속도이슈로 Mustache로 전체 다 바꿔줘야 하는 불상사가 생겼는데 이건 추후 더 정리하고 글을 쓰려 한다. 제목처럼 배포했는데 local에선 잘되지만 ec2에 배포하는 순간 404에러를 뜨면서 url을 잘못호출했다는 알림을 준다. 해결방법은 Controller return값에서 "/index"; 이렇게 되어 있다면 "index";로 바꿔줘야 하고, 그래도 안되는 경우가 있었는데.. @GetMapping("/login") public String openAdminLogin() throws Exception { return "login/loginMain"; } 위 Ge..

Spring 2021.03.24

웹 서버(Web Server)와 웹앱 서버(Web Application Server)의 차이

웹 어플리케이션 아키텍처를 공부하던 중에 웹 서버, WAS, APP에 대한 개념 정리가 필요하여 정리한다. 웹 서버(Web Server) 클라이언트(웹 브라우저)로부터 HTTP 요청을 받고, HTML 문서와 같은 웹 페이지를 정적으로 처리해 반환하는 프로그램. 웹 서버는 HTTP request를 받고 HTML, CSS, Javascript, Image등의 정적인 정보를 반환한다. 이외에도 인증, 정적 컨텐츠 관리, 컨텐츠 압축, HTTPS지원, 가상 호스팅, 대용량 파일지원, 대역폭 스로틀링 등의 기능을 지원한다. 흔히 사용하는 아파치(Apache)가 대표적이며, 인터넷 정보 서버(IIS), Nginx 등이 있다. 웹 어플리케이션 서버(Web Application Server 또는 WAS 또는 Appli..

Web 2021.02.18