반응형 개발자 일지136 [에러]java.lang.Integer cannot be cast to java.lang.String 해결방법 -java.lang.Integer cannot be cast to java.lang.String 해결방법을 알아본다. 1.에러 내용 캐스팅 대상이 Integer(int)인 경우 String으로 캐스팅할 때 (String)을 붙여 캐스팅하면 이 에러가 발생한다. 나는 프로젝트에서 map.get(값)으로 가져온 값이 int값인데 (String)map.get(값)으로 캐스팅하면서 발생했다. VO를 만들어 쓸 걸 그랬다. 2.해결 방법 String으로 캐스팅하려면 방법이 여러가지 있지만 보통 (String)으로 처리할 수 있다. 그러나 이건 캐스팅 대상이 문자열일 때 사용 가능하다. 캐스팅 대상이 실제로 Integer 타입이면 바로 (String)캐스팅시 저런 에러가 발생한다. 이럴 때 String.valueO.. 2022. 5. 27. [인프런 김영한 로드맵4]스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술(2) -서블릿 방식 요청 처리를 학습한다. -요청 방식(http get 쿼리파라미터, html form 전송, api 전송 등)에 따른 처리 방법을 학습한다. -목차는 강의 순서대로 진행한다. -모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture4) 2.서블릿 스프링 MVC 방식을 살펴보기 전에 프레임워크 없이 서블릿 스타일의 클라이언트-서버 통신 과정을 살펴본다. 1.프로젝트 생성 start.spring.io에서 스프링 부트 프로젝트를 생성하고 인텔리제이 프로젝트 오픈 및 설정을 한다. 그리고 롬복도 설치한다. start.spring.io에서 Dependencies로 lombok을 추가하여 생성하자. 그리고 스프링부트는 Jar로 빌드되지만 JSP사용.. 2022. 5. 16. [IntelliJ]깃허브 연동 및 commit and push 테스트 -인텔리제이를 통해 깃 연동을 한다. -깃허브에 commit and push를 해본다. 이클립스나 소스트리, git bash 등으로만 해봐서 인텔리제이로 연동 및 테스트를 해본다. 현재 로컬저장소와 원격저장소를 이미 소스트리로 연결해놔서 리모트연결에 대한 부분이 생략되었기 때문에 이부분에 대한 내용도 필요하면 다른 블로그들이 더 도움이 될 것이다. 1.깃&깃허브 연동 Settings(맥OS는 Preference) > Version Control > Git에서 path to Git executable 깃설치경로를 입력한다. Settings(맥OS는 Preference) > Version Control > GitHub에 들어가서 Add Account로 계정 추가를 한다. 2.Commit & Push 테스트 .. 2022. 5. 15. [인프런 김영한 로드맵4]스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술(1) -인프런 김영한 강사님의 스프링 MVC 1편 강의를 정리한다. -웹 애플리케이션에 대한 이해와 웹서버, WAS, 서블릿, 멀티쓰레드 처리 등에 대해 Intro 학습을 한다. -추후 모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture4) 신청만 해두고 미루고 미루다가 다시 시작했다. 로드맵3을 작성 안 했는데 HTTP 강의 수강한 거 얼른 정리할 예정이다. 1.웹 애플리케이션의 이해 1.웹 서버, 웹 애플리케이션 서버 웹에서 모든 형태의 데이터는 현재 HTTP 형식으로 전달된다. 서버끼리 데이터 주고받을 때도 HTTP로 통신한다. 웹 애플리케이션 통신은 웹서버와 웹 애플리케이션 서버를 통하여 통신한다. 1)웹서버 HTTP기반 동작이며 정적리소스(H.. 2022. 5. 12. [ WIL]한 주간 배운 것 정리 및 느낀점 -한주간 느낀 것들 간단히 정리한다. -한 주간 배운 것들을 간략히 정리한다(Week I Learn) 한 주간 상당히 바빴다. 이번에 코딩 몰아쳐서 엄청했다. 내가 공수를 좀 잘못잡은 탓에 어쨋뜬 끝내기 위해 전력을 다했다. 수면시간 줄여가며 쉬지않고 개발할 수 있었던 것은 재밌었기 때문이다. 피곤함과 스트레스가 극에 달했는데도 코딩이 재밌어서 마칠 수 있었다. 한편으로 딱 좋을시기에 검증(?)할 수 있는 좋은 기회였다고 본다. 그리고 실력을 늘릴 좋은 학습 기회가 있었는데 도저히 체력과 시간이 안 되어 포기하게 되었다. 그걸 포기한대신 업무력과 코딩력을 얻긴했는데 그런 기회들은 또 있을거라고 보며 계속 공부해나가야지. 그리고 올해 바쁜 이벤트들이 너무나 많아서 멀티플레이 할 수 있도록 체력과 정신을 항.. 2022. 4. 21. HTTP, TCP/IP 간단 정리 -OSI 7계층, TCP/IP 4계층을 알아본다. -HTTP, TCP/IP 특징, 관계를 알아본다.이직하고나서 네트워크 개념과 서버관련 개념들이 부족함을 깨닫고 있다. 생각 이상으로 응용되는 개념들이 많고 머리에서 엉킨다. 기능구현 위주의 개발회사에서 이직하면 이러한 약점이 있음을 몸소 깨닫는다! 뭐 깨닫는다고 어쩔 수 있는 것은 아니고 다시 꾸준히 정리해보자. OSI 7계층, TCP/IP 4계층 OSI 7계층은 클라이언트 or 서버에서 데이터 전송시 많은 단계를 거치는데 그 단계를 그림으로 표현한 것 정도로 생각하면 되겠다. 이렇게 계층을 그림으로 나누면 문제발생시 7단계에서 문제 발생 부분만 체크하면 된다는 이점도 있다. TCP/IP 4계층은 OSI 7계층을 기반으로 인터넷에서 실제로 사용되는 표준이.. 2022. 4. 10. [인프런 김영한 로드맵2]스프링 핵심 원리 정리(6) -인프런 김영한 강사님의 스프링 핵심 원리를 정리한다. -빈 생명주기와 생명주기에 따른 콜백 처리 방식을 알아본다. -빈 스코프의 개념, 종류 및 특징을 알아본다. -모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture2) 8.빈 생명주기 콜백 1.빈 생명주기 콜백 시작 DB Connection Pool과 같이 애플리케이션 시작 시점에 필요 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면 객체 초기화 및 종료작업이 필요하다. 우선 빈의 라이프사이클은 다음과 같다. 더보기 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료 보는 것처럼 의존.. 2022. 3. 20. [TIL]ObjectMapper, maven, gradle 등 배운 것들 정리 - ObjectMapper, maven, gradle 등 한 주간 업무시간이나 영상 등에서 배운 것들을 간단하게 정리하였습니다.1. 적당한 스트레스는 원동력이다! 이직한지 어느새 한달이 다 되어간다. 뭔가 한 것 같은데 하지 않은 것 같기도 하고.. 아직도 모르는 게 너무 많아서 좀 벅찬 느낌이 있다. 뭐 한달도 안 되었는데 얼마나 알겠냐는 친구의 조언도 있었지만 역시 나는 인프제(INFJ)라 그런지 신경이 많이 쓰이고 빨리 정상궤도(?)에 올라야겠다는 강박이 든다. 뭐 항상 조급하다고 바뀌는 게 없는 걸 알고 있기 때문에, 요런 스트레스는 긍정적으로 공부할 수 있느 원동력으로 전환시키려고 한다. 이직했는데 너무 쉬워도 이상하니까.. 그나저나 최근에 건강 목적으로 탄수화물을 좀 줄이고 있는데 쉽지 않다.. 2022. 3. 5. [인프런 김영한 로드맵2]스프링 핵심 원리 정리(5) -인프런 김영한 강사님의 스프링 핵심 원리를 정리한다. -의존관계 주입의 개념, 방법 등에 대해 알아본다. -모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture2) 7.의존관계 자동 주입 1.다양한 의존관계 주입 방법 크게 4가지 방법이 있다. 생성자 주입 수정자 주입(setter) 필드 주입 일반메서드 주입 생성자 주입이 가장 추천된다. 생성자 호출 시점에 1번만 호출되며 불변객체로 유지된다. 또한 생성자가 1개인 경우 @Autowired를 생략할 수 있다. 생성자 주입 코드는 다음과 같다. 수정자 주입은 setter를 통해 주입한다. 컴파일 이후에도 변경 가능성이 있기 때문에 선택, 변경 가능성이 있는 의존관계에 사용된다. 필드 주입은 필드에.. 2022. 3. 5. [인프런 김영한 로드맵2]스프링 핵심 원리 정리(3) -인프런 김영한 강사님의 스프링 핵심 원리를 정리한다. -모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture2) 3.스프링 핵심 원리 이해2 - 객체 지향 원리 적용 새로운 할인 정책을 개발해본다. 기존 고정 할인 정책을 변경할 때 OCP, DIP 원칙을 위반하게 되는 문제점을 의존관계주입 방식을 통해 해결해본다. 1)새로운 할인 정책 개발 새로운 할인 정책은 주문 금액에 10%를 할인해주는 정책이다. 할인 정책 인터페이스 DIscountPolicy를 구현한 RateDiscountPolicy를 만든다. 그리고 OrderServiceImpl은 새로운 할인 정책을 사용하도록 변경한다. 2)새로운 할인 정책 적용과 문제점 위의 할인정책코드를 보면 역할.. 2022. 2. 4. [인프런 김영한 로드맵2]스프링 핵심 원리 정리(2) -인프런 김영한 강사님의 스프링 핵심 원리를 정리한다. -모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture2) 2.스프링 핵심 원리 이해1 - 예제 만들기 지금까지 객체지향의 원리에 대한 전반적인 설명과 이 원리가 스프링과 어떤 연관성이 있고 스프링이 객체지향적으로 개발을 할 수 있게 해준다는 점을 언급하였다. 이 파트에서는 프로젝트를 생성하고 회원 도메인 설계와 개발 및 테스트, 주문과 할인 도메인 설계, 개발 및 테스트를 진행한다. 순수한 자바코드로 진행한다. 1)프로젝트 생성 스프링 이니셜라이져 사이트(https://start.spring.io/)에서 프로젝트를 생성한다. 다음과 같은 스펙으로 생성한다. Project : Gradle Pr.. 2022. 1. 29. [기타]개발 관련 추천 유튜브 채널 모음 - 내가 도움을 많이 받았거나 좋았던 개발 관련 유튜브 채널을 정리한다. 개발과 관련한 여러 유튜브 채널들이 있는데 한 번 전체적으로 정리해보는게 좋겠다 싶어서 정리해본다. 비공개로 나만 볼까 하다가 혹시나 도움이 될까 싶어 공개모드로 해둔다. 1.우아한Tech 배민 서비스를 하는 우아한 형제들에서 운영하는 유튜브 채널이다. 여러 컨텐츠가 있는데 10분 내외로 끝나는 10분 테코톡이라는 컨텐츠가 유용하다. 짧기 때문에 출퇴근 때 짬짬이 보기도 했고, 에버노트에 개인적으로 정리하기도 했다. 아무래도 출퇴근 피곤할 때 봐서 휘발..되는 내용들도 많지만 반복해서 보다보니 면접때도 어느정도 도움이 되었다. 우아한 Tech 우아한Tech우아한형제들의 기술조직 이야기를 전하는 우아한Tech입니다. 우아한형제들 h.. 2022. 1. 23. [인프런 김영한 로드맵2]스프링 핵심 원리 정리(1) -인프런 김영한 강사님의 스프링 핵심 원리를 정리한다. -모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture2) 1.객체 지향 설계와 스프링 1)자바 진영의 추운 겨울과 스프링의 탄생 스프링 탄생 배경을 간단하게 소개한다. 기존에 EJB라는 표준 기술을 사용하다가 로드 존슨에 의해 스프링이 세상에 처음 나왔다. 이후 몇몇의 개발자들과 퇴근하고 만들었다는데 대단하다는 생각밖에.. 스프링 버전별 핵심특징은 정리해두는 것이 좋을 것 같다. 2003년 스프링 프레임워크 1.0 : XML 2006년 스프링 프레임워크 2.0 : XML 편의 기능 지원 2009년 스프링 프레임워크 3.0 : 자바 코드 설정 2013년 스프링 프레임워크 4.0 : 자바8 20.. 2022. 1. 23. [자바, 스프링]인프런 김영한 로드맵1, 스프링 입문 강의 정리4 -인프런 김영한 강사님의 스프링 입문 강의 핵심 위주로 정리한다.-모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture1)-이전 글은 아래 링크를 참고해주세요. [자바, 스프링]인프런 김영한 로드맵1, 스프링 입문 강의 정리3-인프런 김영한 강사님의 스프링 입문 강의 핵심 위주로 정리한다.-모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture1)-이전 글은 아래 링크를 참고해주세요. [자바, 스프링]roadofdevelopment.tistory.com 8.AOP 1)AOP가 필요한 상황지금까지 만든 서비스들(회원가입, 회원조회 등)의 동작 시간 측정 로직을 서비스 메소드마다 달아야 하는 .. 2022. 1. 10. [자바, 스프링]인프런 김영한 로드맵1, 스프링 입문 강의 정리3 -인프런 김영한 강사님의 스프링 입문 강의 핵심 위주로 정리한다.-모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture1)-이전 글은 아래 링크를 참고해주세요. [자바, 스프링]인프런 김영한 로드맵1, 스프링 입문 강의 정리2-인프런 김영한 강사님의 스프링 입문 강의 핵심 위주로 정리한다.-모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture1)-이전 글은 아래 링크를 참고해주세요. [자바, 스프링]roadofdevelopment.tistory.com 7.스프링 DB 접근 기술 메모리DB가 아닌 H2 DB를 사용하여 순수JDBC, JdbcTemplate, JPA, Spring JPA 순으.. 2022. 1. 1. [면접 복기] 기술면접 질문 모음 (백엔드 개발자) 백엔드 개발자 지원 면접 때 받은 기술질문들을 복기한다.1.기술질문(W사) 1)하고 있는 프로젝트에 대해2)JWT의 특징은?3)자바 1.8로 들어오면서 무엇이 바뀌었는가?4)람다에서 화살표는 무엇을 바꾼 것인가5)람다 스트림 아니면 할 수 없는 코드가 있다?6)람다 스트림에서 map이란?7)그리디 알고리즘이란?8)그리디 알고리즘이 사용된 알고리즘은?]9)리눅스 tail 명령어란 무엇인가?10)리눅스에서 파일을 뒤에서 몇번째까지 읽는 방법은?11)네트워크에서 OSI7계층은?12)OSI7계층에서 TCP프로토콜이란?13)https는 왜 tcp에서 작동하지 못하는가?14)자바의 GC에 대해 아는데까지 말해보기15)클래스,메소드,변수에 final을 붙일 때 어떤 일이 발생하는가16)인터페이스, 추상클래스의 차이1.. 2021. 12. 19. [자바, 스프링]인프런 김영한 로드맵1, 스프링 입문 강의 정리2 -인프런 김영한 강사님의 스프링 입문 강의 핵심 위주로 정리한다.-모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture1)-이전 글은 아래 링크를 참고해주세요. [자바, 스프링]인프런 김영한 로드맵1, 스프링 입문 강의 정리1-인프런 김영한 강사님의 스프링 입문 강의 핵심 위주로 정리한다.-모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture1)5개월전에 한 번 듣긴 했었는데 너무 빠르게 듣고 강의 듣roadofdevelopment.tistory.com 4.회원 관리 예제 - 백엔드 개발1)비지니스 요구사항 정리간단한 회원관리 예제를 만든다. 회원등록과 조회 기능을 만든다. 데이터 저장소.. 2021. 12. 12. [자바, 스프링]인프런 김영한 로드맵1, 스프링 입문 강의 정리1 -인프런 김영한 강사님의 스프링 입문 강의 핵심 위주로 정리한다.-모든 소스는 깃허브에서 관리한다.(https://github.com/coderahn/Spring-Lecture1)5개월전에 한 번 듣긴 했었는데 너무 빠르게 듣고 강의 듣기 자체에만 어느새 목적전도가 되어서..제대로 인프런에서 안내하는 로드맵을 따라서 깃허브 코드 관리와 내용 요약을 하려고 한다. 토이 프로젝트도 하면서 머리도 머리인데 손가락 근육(?)으로도 체득이 더 되도록 해보자..이 정리의 목표는내가 모르는 것, 기억이 가물가물한 것, 실무에 반드시 알고 있어야 하는 것 들에 대해서 정리단순히 클론코딩 하듯이 따라하면 남는 게 없다. 따라하면서 다른 방식으로 실행해 보거나 모르는 게 있으면 따로 심화 정리를 간단하게라도 해보자 1.강.. 2021. 12. 6. [TIL]try-catch-resource, JWT, equalsgnoreCase() 등 - 한 주간 업무시간이나 영상 등에서 배운 것들을 간단하게 정리한다. JAVA - equalsIgnoreCase() 소나큐브에서 equals()로 되어 있는 소스코드를 equalsIgnoreCase()로 바꾸라고 해서 찾아봤다. 보던 메소드이긴 한데, 정확히 어떤 상황에서 쓰는지 몰랐는데 이번에 잘 알게 되었다. 그냥 말 그대로 '대소문자 무시하고 비교하기'이다. String a = "Test"; System.out.println(a.equalsIgnoreCase("test")); //결과 //true JAVA - try-with-resources Apache Poi로 엑셀 리딩 작업을 하고 close()를 실수로 안 해서 소나큐브에서 잡아주면서 알게 되었다. 보통 finally에 close() 처리를 .. 2021. 12. 4. [TIL]이번 주 학습 내용들 - 업무 프로젝트를 진행하며 숙지할 필요가 있는 부분을 간단하게 작성한다. 생각해보니 TIL은 Today I Learned인데, Today는 아니다..그래도 한 주간 배운 것을 정리하니 TIL로 해야지. VUE Mixins Vue 컴포넌트에서 재사용 가능한 기능을 배포하는 유연한 방법이다. 공통 함수같은 것을 만들어서 여러 컴포넌트에서 사용하거나 그런 경우 사용한다. JWT 회사에서 만들어진 것을 쓰다보니 궁금증이 생겨서 공부해봤다. 학습 프로젝트로 한 번 해봐야겠다. 기존 세션 방식 로그인 시 인증/인가 방식에는 기존 세션 저장 방식이 있다. 클라이언트에서 로그인 요청시 서버에서 세션 생성을 한다. 그리고 그 세션id를 쿠키에 담아 클라이언트에 전달한다. 이후 Request를 보낼 때 쿠키에 담은 세션.. 2021. 11. 26. 이전 1 2 3 4 5 6 7 다음 반응형