7주차 과제: 패키지 목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 마감일시 2021년 1월 2일 토요일 오후 1시까지.
글
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
단순하게 써왔던것들이 직접 API를 구현하면서 조금 익숙해지고 있다. 지금 나에게 주어진일은 엑셀 업로드를 제외하면 사실 단순 CRUD인데 이런 단순 작업에서도 며칠씩 소모하면서 하나하나 배우는 중이다. 막상 구현하고 나면 '이렇게 짧고 간단한 일인가?' 싶은데 구현전에 생각하는 시간과 시작전에 멍한 시간이 있어서 그런것 같다. map으로 파라미터 값을 받지 않고 DTO로 받았다. 사실 이건 예외처리같은 더 고급기술을 쓰기 위해 쓰는거라고 선배님은 말해주셨지만 나는 일단 기억을 되살리고 싶어서 쓴 느낌이 있다. 과정에서 RequestBody와 Param을 구분하는것을 다시 찾아보고 @Transactional 이 언제 먹히는지 왜 service 단에서만 사용 가능한지 다시 찾아보며 또 배우고 있다. 포스트맨을 쓰는게 조금은 익숙해졌는데 학원에서는 이걸 몰라서 테스트를 위해서 대충이라도 웹페이지를 구현하고 매번 웹사이트를 통해 테스트를 진행했던 기억이 있다. 사용법도 몇번 사용하고 나면 복잡하지 않은데 진작 알았으면 간단한 프로젝트에서도 정말 도움이 많이 됐을것 같은 느낌. 주소검색 api와 코드매칭 api를 제작해야 한다... 예상치 못한 일이 추가로 늘어난 느낌
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
5주차 과제: 클래스 목표 자바의 Class에 대해 학습하세요. 학습할 것 (필수) 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 마감일시 2020년 12월 19일 토요일 오후 1시까지. 과제 (Optional) int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요. int value, Node left, right를 가지고 있어야 합니다. BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요. DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요.
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
한 주가 시작한 23일이다. 그간 회사일을 하면서 백기선님이 내준 스터디를 병행하고 있는데 변수나 연산자같은 기초적인 부분임에도 내가 간과하고 넘어간 부분을 짚을 수 있고, 헷갈렸던 개념을 정리할 수도 있어서 너무 좋다. 보통 개념 부분은 누군가가 질문하면 아 그거 분명 썼는데 ... 라는 생각이 나는반면 이걸 하고 나면 이런 일이 줄어들것 같은 생각. 열심히 18주 100% 채워서 올릴 예정이다. 저번주에는 API 테스트를 처음 해봤다. POST MAN을 단지 스스로만 돌아가는지 확인하는거면 그냥 sysout 찍는거랑 뭐가 다른가 싶었는데, 중요한점은 서버를 구동시킨 상태에서 이 API가 통신을 지나오면서도 내가 원하는 일을 수행하느냐가 관건이었다. 해서 권한이 설정된 일이라면 권한을 가진 token도 미리 입력해줘야 하고 다른 여러 조건을 설정 해줘서 실제 돌아가는 환경에서 테스트를 한다는것 이게 중요한 점이었다. mapper에서 오타가 아닌 조인을 적용하는 수정을 했는데 간만에 써서 그런지 이런 저런 오류를 많이 만나게 되었다. 어떤 부분에서 테이블을 명시해 줘야 하는지 어디에서는 생략하고 쓸 수 있는지 생각하면서 수정하는 좋은 경험 이었다. exel 다운로드를 보면서 코드가 깔끔하다 생각이 들었는데, 지금 문자메세지 관련 템플릿은 봐도봐도 모르겠다. 내일 이걸 본격적으로 수정할 계획인데 부디 내일 하루동안 잘 진행됐으면 ... Arrays.asList 클래스를 처음 써본것 같다. Arrays.list 와는 다른 클래스로 고정된 크기의 list를 반환하고 간단하게 배열에 요소들을 추가할 수 있다. 이런걸 쓰니까 내가 아는 지식이었다면 3~4줄은 써야 가능할 배열에 요소 추가가 단 한줄로 되는 걸 보고 코드를 잘 구성하고 싶어졌다. 이클립스의 quick fix 기능을 사용하면 if-else문과 switch문을 쉽게 변환할 수 있다. intelij에서 지원한다고 해서 신기해 하고 찾아봤는데 이클립스도 지원하는 것. 설정...
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
자바를 단지 도구로만 생각하고 이를 더 잘 쓰는걸 jsp, spring 이라고 생각했는데 오히려 자바에 대해서 알아야 하는게 더 깊고 깊다는걸 배웠다. spring의 근간이 되는 기술인 만큼 다른 기술들에도 적용할 수 있고 java는 내 생각보다 더 엄청난 언어임이 틀림없다. jsp 단에서 "data-id" 라는 태그가 쓰였는데 html5 부터 지원하는 태그라고 한다. 뭐인지 찾아 보곤 하니 그간 name이나 id 처럼 해당하는 속성 전체를 불러와서 그것의 value를 검색하는 방법과 달리 <data-id="title">의 경우 data라는 큰틀에서 key값이 id, value값이 title이 되는 식이었다. 해서 구글링으로 아무리 data-id를 통한 전체 속성에 value 접근을 찾아봐도 나오지 않는 것 우리 소스를 보면 구현해놓은게 있긴 하지만 이는 name, id, class를 하나하나 찾아봐서 해당 값을 가져오는 방식이었다. 조금 시간이 오래 걸리기는 하지만 구현이 가능하다는 것만 알아두고 나는 다른 방식을 사용하기로 결정 spring 의 세가지 요소 IOC 컨테이너, AOP, 추상화 계층 이를 제대로는 모르지만 이렇게라도 알아두는게 좋을것 같아서 일단 적어두고 새로운 단어를 배웠다. 바로 'Yak shaving' 이는 어떤 행위를 위해서 계속 계속 다른 일을 하다가 결국 밑바닥 부터 하게 되는것을 의미한다고 한다. 이에 대해서는 여러 예시가 있지만 간단히 보자면 시험공부를 시작 하다가 결국 방청소를 하게되는 그런것이 개발에도 그대로 있고 이를 나타내는 단어까지 있다니. (하지만 공감갔던 글 yak shaving은 재밌다.) 객체 지향의 4요소는 추상화 (클래스/객체) - 모델링 캡슐화 - 정보은닉 상속 - 재사용/ 확장 다형성 - 사용편의 아무리 듣고 들어도 낯설고 어렵다. 내가 이를 지키지 않고 객체지향 언어를 사용하고 있기 때문 어서 해당 요소를 적용하며 개발 하...