본문 바로가기

분류 전체보기312

[에러 해결] Error creating bean with name~ 분명 잘 돌아가는 코드가 깃에 올라가있었고, 이를 그대로 clone해와서 yml파일만 추가했는데 이러한 오류가 났다.빈이 등록이 안되어있다고? 그럴 리가 없었다...그러다가 yml파일과 @Value로 연결되어있는 부분에 값이 업데이트 되어있지 않은 것을 확인하게되었다이유를 찾다가 resources파일이 엉뚱한 곳에 들어가있다는 것을 알 수 있었다. resources를 꼭 main안에 넣자..! 2024. 9. 24.
[객체지향] 2장 이상한 나라의 객체 책 내용 정리객체지향과 인지능력인간은 본능적으로 세상을 객체 단위로 인식한다.인간의 인지능력은 물리적인 한계를 넘어 개념적으로 경계지을 수 있는 추상적인 사물까지도 객체로 인지하도록 한다.(ex. 계좌이체내역)이와 소프트웨어의 유사성은 여기까지이고, 소프트웨어 세계에서는 현실과 다르게 객체가 주체적으로 일 할 수 있다. 객체, 그리고 이상한 나라이 책에서는 객체지향을 설명하기 위해 이상한 나라의 엘리스 이야기를 예시로 든다.이 부분에서는 엘리스가 문들을 통과하기 위해 음료수를 먹고 몸이 작아지고, 케이크를 먹고 다시 몸이 커지는 부분을 중심으로 설명한다. 엘리스는 키라는 상태가 있고, 원하는 바를 이루기 위해서 적당한 상태로 자신의 키를 변화시킨다.앨리스의 키를 변화시키는 것은 엘리스의 행동이다.-> 엘.. 2024. 9. 24.
[git] Fork 한 저장소의 최신 코드 가져오기 우리 프로젝트에서는 협업을 위한 repository가 있었다. 이 repository에는 master, feedback, weekly 등의 브랜치가 있었고, 나는 이 repository를 fork한 후 이 저장소를 내 컴퓨터에 clone 했다.  내가 해야 할 일은 weekly 브랜치에서 작업한 후 작업물을 fork한 저장소의 weekly브랜치에 PR을 날리는 것이었다.그 다음 테크리더님이 팀원들의 코드를 merge 하면 이를 내 로컬로 받아온 후 작업을 이어나가야한다. PR까지는 했지만 코드를 내 로컬로 pull해오는 것에서 문제가 생겼다. 이를 처음 해보는 나는 그냥 git pull하면 되는 것 아닌가?라고 생각했지만 이미 업데이트 되었다고 뜨고 코드에는 아무런 변화가 없었다. 생각해보니 지금 내 로.. 2024. 9. 20.
[카카오테크캠퍼스] 3단계 개발 1주차 회고 3단계가 시작되고 2주간은 최종적인 기획을 완료하는 시간을 가졌다. 우리 팀은 기획은 탄탄히 해두어서 이제까지는 별로 할 일이 없었다.하지만 이번주부터 본격적인 개발 시작이다! 열심히 해야겠다.ERD설계, API 설계아 2주차 때 erd와 api설계를 했다. 데이터베이스에서 배웠을 때에는 정말 어려웠는데, 저번 프로젝트 때 한번 경험해보니까 너무 쉬웠다. 역시 경험이 중요한 것 같다. 데이터베이스 설계는 위와 같이 구성하였다. 다소 복잡하다ㅜㅜ데이터베이스 설계는 백엔드끼리 했다. 그 다음 api설계를 했다.이런 식으로 다 작성해두었다. 생각보다 고려해야 할 점이 많았다. 우리가 해결해야 할 것은 구인글을 조회할 때 모든 정보를 반환할 때랑 개인별 정보를 반환할 때랑 endpoint가 같다는 것이다. 처음.. 2024. 9. 19.
[교육일지] 자바 기초교육 회고 교육 목표자바 기초교육은 내가 교육부장이 된 후 처음으로 하는 교육이었다. 그만큼 정말 열심히 준비하였다! 내 교육 목표는 시간을 내서 내 교육을 들으러 온 모든 학생들에게 확실하게 얻어가는 것이 있도록 하는 것이었다. 그러기 위해서 가장 중요한 것은 난이도조절이라고 생각했다. 개발자 컨퍼런스 등에서 내 수준에 비해 너무 어려운 수업을 들으면 집중력이 떨어져 나중에 기억나는 내용이 전혀 없었던 적이 있었기 때문이다.그래서 나는 코딩을 처음 시작했을 때 어땠는지부터 떠올렸다. 나는 선생님께 1대1로 배웠음에도 이해하기 어려운 부분이 많았던 것 같다. 입출력 조차도 많이 헷갈렸던 과거를 생각하면 정말 하나하나 천천히 가르쳐야겠다고 생각했다.  교육 자료자료 만드는 것은 생각보다 매우 오래걸렸다. 만들다보니 .. 2024. 9. 17.
[Spring] 객체지향설계와 스프링 스프링에 객체지향 개념 이야기가 나오는 이유스프링은 DI(Dependency Injection)라는 의존관계 주입과 DI 컨테이너 제공으로 다형성 + OCP와 DIP를 가능하게 지원한다.클라이언트 코드의 변경 없이 기능 확장이 가능하다 스프링이 없던 시절엔 OCP와 DIP원칙을 지키면서 개발을 해보니 너무 할 일이 많았다. 이를 위해 프레임워크를 만들었다. 정리모든 설계에 역할과 구현을 분리하자공연으로 예를 들면 배역만 만들어두고 배우는 언제든지 유연하게 변경할 수 있도록 하는 것이 좋은 객체지향설계이다.이상적으로는 모든 설계에 인터페이스를 부여하자 실무적인 관점에서인터페이스를 도입하려면 추상화라는 비용이 발생한다. -> 예를 들어 특정 코드를 보기 위해 파일을 한번 더 열어보아야한다.따라서 기능을 확장.. 2024. 9. 15.