본문 바로가기

분류 전체보기41

프리뷰 그라운드 : 개발자 면접 멘토링 후기 https://previewground.oopy.io/ 프리뷰 그라운드 : 개발자 면접 멘토링 현직 개발자가 기술 면접, 피드백, 질의 응답을 해드립니다. previewground.oopy.io 개발자 공부를 시작한 지 9~10개월이 다 되어간다. 사실 12월 중순 국비학원 수료 후 어떤 방향으로 어떻게 공부를 해야 할 지 몰라서 2~3달은 많은 실패가 있었고 결론적으로 얻은 것이 없는 시간이었다. 학원의 수업 진도도 굉장히 빨랐으며 생략된 부분도 많았다. 결국 CS,자바,스프링 등 모든 부분의 기초적인 지식이 굉장히 부족했고, 사실 학원은 핑계고 내가 제대로 공부를 안 한 것이다. 최근 다시 공부에 집중할 수 있는 상태가 겨우겨우 되었다. 하지만 내 주변엔 개발자 지인이 없기 때문에 스터디나 세미나에 .. 2022. 4. 30.
JPA란?(HIBERNATE, HIBERNATE설정, jpa 구동방식, ORM) JPA (Java Persistence API) JPA란? JPA는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음 ORM? ORM(Object Relational Mapping) 자체적으로 쿼리문 생성(SQL문 불필요) SQL Query가 아닌 자바 코드(메서드)로 데이터 조작이 가능 물론, SQL Query도 사용할 수 있지만, @Query와 같은 Annotation으로 코드에서 사용할 수 있음 장점: SQL 중심적인 개발이 아닌 Method를 통해서 DB를 조작할 수 있어, 개발자는 객체 모델을 이용해서 비즈니스 로직을 구성하는데만 집중할 수 있음. (개발자가 CRUD용 쿼리를 따로 작성할 필요가 없다) 단점: 통계 쿼리처럼 매우 복잡한.. 2022. 4. 29.
JSP와 Thymeleaf (차이점, 동작 원리) JSP가 아닌 Thymeleaf를 쓰는 이유는? JSP와 Thymeleaf의 가장 큰 차이점은 JSP와 달리 Servlet Code로 변환되지 않는다 순수 HTML구조를 유지한다.(Natural Tamplate) 따라서 비즈니스 로직과 분리되어 오로지 View에 집중할 수 있다. 서버상에서 동작하지 않아도 된다.(JSP는 서버를 통해 Servlet코드로 변환되어 랜더링 된다) Jar 패키징이 가능하다.(사실 이것의 장점을 아직 잘 모르겠다. 더 공부해야 할 듯) Thymeleaf의 동작 원리 Web Browser가 Http Method(GET)을 통해 hello 전달 이것을 톰켓 서버가 맨 처음 받아 Spring Boot에 전달 Spring Boot는 helloController에게 내용을 전달 해 주고.. 2022. 4. 1.
스프링 컨테이너(BeanFactory, ApplicationContext) BeanFactory와 ApplicationContext BeanFactory 스프링 컨테이너의 최상위 인터페이스이다. 스프링 빈을 관리하고 조회하는 역할을 담당 getBean() 을 제공한다. ApplicationContext BeanFactory 기능을 모두 상속받아서 제공한다. MessageSource를 활용한 국제화 기능 환경변수: 로컬, 개발, 운영등을 구분해서 처리 애플리케이션 이벤트: 편리한 리소스 조회: 파일, 클래스패스, 외부 등에서 리소스를 편하게 조회 정리 ApplicationContext는 BeanFactory의 기능을 상속받는다. ApplicationContext는 빈 관리기능 + 편리한 부가 기능을 제공한다. BeanFactory를 직접 사용하는 일은 거의 없다. 부가기능이 포함.. 2022. 3. 19.
StringBuffer클래스 StringBuffer클래스 String처럼 문자형 배열(char[])을 내부적으로 가지고 있다. 그러나 String(내용수정 불가인 불변)과 달리 내용을 변경할 수 있다.(mutable) StringBuffer sb = new StringBuffer("abc"); sb.append("efg"); System.out.pintln(sb); //결과: abcefg System.out.println("sb = " + sb); //결과: abcefgZZ System.out.println("sb2 = " + sb2); //결과: abcefgZZ append()는 지정된 내용을 StringBuffer에 추가 후, StringBuffer의 참조를 반환 배열은 길이 변경불가. 공간이 부족하면 새로운 배열 생성해야함. .. 2022. 3. 19.
String클래스 String클래스 문자열을 다루기 위한 클래스 String클래스 = 데이터(char[] → 문자배열) + 메서드(문자열 관련) 내용을 변경할 수 없는 불변(immutable) 클래스String a = "a"; String b = "b"; a = a + b; //a의 내용이 바뀌는게 아니라 완전히 새로운 문자열a가 만들어지는 것이다.(기존 주소는 끊어지고 새로운 객체 즉, 새로운 주소가 생긴다.) 덧셈 연산자(+)를 이용한 문자열 결합은 성능이 떨어짐(계속해서 새로운 객체가 만들어지기 때문에) 문자열의 결합이나 변경이 잦다면, 내용을 변경가능한 StringBuffer를 사용 문자열 비교 String str = "abc"와 String str = new String("abc")의 비교 String str1 .. 2022. 3. 19.