Java

1. Spring Spring 주특기 마지막 주차에 예상치 못하게 팀플을 하게 되었는데 괜찮은 것 같다. 이번 기회에 많이 익숙치 않은 깃과 협업을 좀 더 연습하면 좋을 것 같다. GitHub Desktop에서 원격에 있는 repo 불러오기 -> clone repository IntelliJ에서 원격에 이미 만들어져 있는 repo 불러오기 -> get from version control (새로 생성은 share project on Github -> commit directory) find action (ctrl + shift + A) AWS S3 서비스를 이용해 게시글을 작성할 때 이미지를 업로드하고, 응답으로 이미지 url을 받는 기능을 배정받았다 https://devlog-wjdrbs96.tisto..
이노베이션 캠프 4주차를 수행하면서 배운 것 중 유용한 것을 정리한다. 스프링 어노테이션이 얼마나 큰 역할을 하는지 더욱 알게된 한 주였다. 1. MySql 먼저 오늘 배포하기 전에 H2에서 RDS MySql로 바꾸었을 때 JPA - Field 'id' doesn't have a default value 이런 에러가 자꾸나서 찾아본 결과 JPA와 DB의 save() 관련 sql문 차이가 있어 따로 설정해주어야 되는 부분이있었다. // User @GeneratedValue(strategy = GenerationType.IDENTITY) @Id private Long id; 유저 엔티티의 DB id값 설정에서 원래 GenerationType.AUTO에서 GenerationType.IDENTITY로 바꿨었는데..
새로운 개념들이 본격적으로 쏟아지기 시작하는 것 같다. 19일차부터 코드치고, 성질내고 하면서 계속 TIL도 안쓰고 코테 문제풀이도 안하다가 나름 여유가 생겨서 간단하게 적어보려 한다. 금요일에 학습자료를 활용해서 스프링 시큐리티를 이용한 회원가입, OAuth를 따라치며 배웠고, 그 다음날부터 JWT관련해서 엄청나게 헤맸다. 어제까지 계속 샘플 JWT코드로 내가 원하는대로 작동하게끔 시도했지만 계속 실패해서 그냥 동작하게끔 일단 세팅해놓고 오늘부터 회원 관련한 게시판, 댓글 등의 기능을 다 구현했다. 댓글 엔티티와 게시글 엔티티 사이의 DB 연관관계에서 막히는가 했지만 스프링 어노테이션의 엄청난 힘을 다시 한번 느끼면서 잘 극복했고, 예외처리까지 거의 마무리된 것 같다. 아직 refresh token 검..
1. Spring 코드를 개선하고 재배포할때 계속 8080포트가 이미 사용중이라는 에러가 떠서 git bash에서 제거해준 뒤 다시 배포하는데 성공했다 맨위 id에 해당하는 프로세스 종료했다 ps -ef | grep java kill -9 [process_id] 스프링 MVC의 내부 동작에 대해 좀 더 깊게 알게 되었고, 이는 17일차 TIL에 한꺼번에 작성해놓았다 테스트코드도 연습삼아 짜봤는데, 스프링 데이터 JPA를 사용하면서 단위테스트는 잘 되지 않아서 일단 통합 테스트로 진행해보았다. 서비스 계층의 게시글 등록에 대한 테스트 딱 한개만 진행했고, 단위 테스트로도 할 수 있는지 좀 더 공부해야 할 것 같다 17일차 TIL에 설명했던 것 중 Enum 사용과 ExceptionDto 요소 확장은 오늘 진..
1. Spring 개인과제에서 전에 하기로 했던 계층 분리와 responseDto 관련 코드를 작성하여 오늘 AWD RDS와 연결하고, 배포까지 진행했다 responseDto는 하나의 클래스 안에 static inner class 세개를 담아서 각각 article list, article, null id 관련 에러 응답을 만들어 프론트에 보내지기 전에 감싸주는 역할을 주었다 이런식으로 중첩 클래스로 처리했을 때 생기는 문제가 있을 지 물어볼 계획이다 enum은 처리할 에러 상황이 너무나 적어서 쓰지 않았지만, 공부가 더 필요하긴 할 것이고, 확장성있게 짜는 것이 목표였다면 enum을 적용했어야 할 것 같다 팀과제도 미팅해서 진행했는데, JPA의 필요성을 다시 한번 알게 되었고, DNS 와 통신하는 것의 ..
금요일부터 시작한 주특기 주차에서 전 주차에 비해 갑자기 배우는 내용이 많아졌다보니 정신없으면서도 재밌는 것 같다. 개인과제로 스프링을 활용해 기본 CRUD 기능을 가진 게시판을 만드는 것, 팀 과제로 스프링을 배우면서 중요한 키워드를 정리하는 것을 할당받았다. 이미 알고 있는 내용과 주어진 학습 자료를 십분 활용해 일단 개인과제를 만들기 시작해서 어제(13일)에 기능 구현을 마쳤고, 기술 매니저님 피드백 이후 리팩토링하는 절차를 밟고 있다. 피드백 받기를 잘한 것 같다. 강의나 자료를 쭉 소화하고 만들기보다는 뭔가 그냥 무작정 만들어보고 싶었다. 빠르게 완성하고 강의자료에서 주어진 예제들을 더 연습하면서 스프링에 익숙해지면 될 것 같다. 1. OOP 기존의 절차 지향적인 개발 방식과는 다르게, 서로 관..
1. JAVA 어제부터 진행하던 개인 과제를 완성은 했다 일단 만들고 보자는 생각이 너무 강했는지, 만들때는 괜찮다고 생각했는데 피드백을 받으면서 코드를 다시 보니 꽤 고칠게 많아 보였다 컨트롤러가 서비스와 리포지토리 계층을 모두 주입 받고 있었고, 응답할 때의 로직도 너무 복잡한게 아닌가 싶었다 매니저님도 읽기 어려운 부분이 있다고 하시기도 했고, response 관련 의견이 가장 많으셨다 많은 부분을 구글링을 통해서 배웠는데, @JSONIgnore: 입력받는 비밀번호를 저장하고 응답에는 포함하지 않는 것 스프링 데이터 JPA로 내가 커스터마이징한 findAllByOrderByIdDesc() 메소드를 활용 @RestControllerAdvice와 @ExceptionHandler를 이용한 에러 처리 제네..
1. Spring 로그인 기능은 없는 CRUD 가능한 게시판을 만드는 것이 개인과제로 주어져서, 아는 지식을 활용해 바로 만들기부터 시작했다 일단은 리포지토리를 내장된 해시맵을 활용해 최대한 객체지향적으로 만들고 작동하는 것을 확인한 후 최종적으로 Mysql로 갈아끼울 계획을 세웠다 ui없이 api 테스트기를 통해 json형태로만 데이터를 주고받는 것이기 때문에 API에 모두 @Responsebody를 붙혔으며, id값으로 동적 라우팅을 구현하기 위해 메소드 매개변수에 @PathVariable 설정과, POST 요청 시 http body로 전송된 데이터를 받기위해 메소드 매개변수에 @RequestBody를 붙혀줬다 컨트롤러 관련한 것은 구글링으로 많이 알 수 있었다 @GetMapping() @Respon..
1. TIL/WIL 세션 참석할까 고민하다 들어갔는데, 좀 더 나은 TIL/WIL을 쓸 수 있는 계기가 되어서 좋았다 지금은 '어떤 것을 했고, 잘 안된 것은 무엇이고, 잘 된 것은 무엇인지, 느낀점 간략하게' 이 정도로 작성하고 있는데, 앞으로 시도해볼 것과 이를 바탕으로 나중에 시도해보고 나서 어떤 결과가 있었는지 추가로 넣으면 좋을 것 같고, 기술적인 내용이나 실제 코드를 첨부하면서 좀 더 자세히 작성하는 것도 더 많아지면 좋을 것 같다. 꼭 글이 아니더라도 음성이나 그림 등 다양한 방식으로 표현할 수도 있겠다 싶었다. 면접 팁: 두괄식, 명확한 기술용어 사용으로 불필요한 설명 없애기 공부 팁: 문제를 만나면 먼저 이를 해결할 수 있는 방법들을 적당히 추린 후에 하나씩 만만한 것 부터 시도하기 여러..
1. JAVA 과제의 요구사항에 맞게 나름대로 필드와 메소드를 구성해서 완성했다 상속을 사용했었는데, 애초에 설계한대로 자식 클래스별로 같은 필드라도 디폴트 값이 달라 각각 새롭게 정의하여 진행했을 때는 상속의 의미가 크지 않은 것으로 결론냈다 중복 필드 매번 재정의 getter/setter 메소드 쓸데없이 중복 changeGas 메소드 쓸데없이 중복 이후에 슈퍼클래스를 추상화하면서 공통 기능에 대한 처리를 해보고, 최종적으로 인스턴스 생성할 때 디폴트 값(요금, 최대 승객 수, 속도)를 입력하게 했을 때 상속의 효과가 가장 큰 것으로 보였다 원래 대략 알고있던 인터페이스와 추상클래스의 용도나 차이에 대해 더 알게 되었다 추상클래스: 미완성 설계도, 다중상속 불가 -> 자식에 공통기능 전파 인터페이스: ..
hjkim0502
'Java' 태그의 글 목록 (3 Page)