본문 바로가기

TIL41

TIL) Content type 'application/octet-stream' not supported 에러 상황 : 프런트에서 AWS S3를 이용하여 게시물에 이미지를 업로드하고 생성할 때 백엔드에 게시물의 데이터를 전달하는 상황 에러 상황: Content type 'application/octet-stream' not supported 에러 DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content-Type 'application/octet-stream' is not supported] 에러 이유: SpringBoot Controller의 핸들러 메서드에서 게시글에 필요한 requestDto 데이터와 이미지 저장을 위한 MultipartFile을 함께 사용시 발생한 오.. 2023. 9. 13.
TIL) Ajax에서 alert 창이 뜨지 않을 때? '저장' 버튼을 누르면 '게시글 등록 성공'이라는 알림창이 뜨도록 설정하였다. 그러나 어쩌다 한 번 알림창이 뜨고 index로 돌아갈 뿐, 알림창이 지속적으로 뜨지는 않았다. 우선 게시물 등록을 위한 버튼은 아래와 같다 저장 우선 알림창이 뜨지 않아도 게시물이 디비로 넘어오는 것은 확인하였다. 로그를 찍어도 디비가 확인이 되었기에 나는 버튼의 type을 의심하게 되었다. 태그의 type 속성은 해당 버튼의 타입(type)을 명시한다. 브라우저별로 요소에 대한 서로 다른 기본 타입을 사용할 수 있으므로, 요소에는 언제나 type 속성을 명시해야 한다. 버튼의 문법 버튼의 속성값 type="submit" : 폼의 전송 기능을 담당한다. type="reset" : 폼 작성 내용을 초기화하는데 사용한다. typ.. 2023. 8. 30.
TIL) [JavaScript] JavaScript 선언 위치 메인 페이지 템플릿을 intellij에 가져오기 위해 템플릿 웹사이트에서 html, css, js 코드를 가져왔다. 그러나 외부 스크립트로 지정한 js 기능이 연결되지 않았다. 현재 내가 넣은 js코드는 로 안에 위쪽에 구현해놓았다. 그랬더니 js코드가 동작하지 않았다. 이번에는 이 방법은 스크립트를 페이지 컨텐츠보다 먼저 로드하기 때문에 스크립트 실행 전에 초기화 작업을 수행할 수 있다. 즉 순차적으로 실행되며 안에 코드를 실행하기 전에 이 방법은 페이지 컨텐츠를 먼저 표시한 후 스크립트를 로드하여 사용자 경험을 개선한다. body 안에 html 코드, script 코드가 먼저 실행되기 때문에 클라이언트가 페이지 로딩 속도가 빠르다고 느끼게 된다는 의미이다. 그래서 페이지 로딩 속도에 더 긍정적인 영향.. 2023. 8. 25.
@NoArgsConstructor 와 @RequiredArgsConstructor @NoArgsConstructor를 평소에 쓰지만 왜 쓰는지 몰라 정리해보았습니다. "NoArgsConstructor"는 Java 프로그래밍 언어에서 클래스의 생성자 중 하나를 나타내는 용어입니다. 생성자는 객체가 생성될 때 해당 클래스의 인스턴스를 초기화하는 특별한 메서드입니다. 생성자를 사용하여 객체의 필드를 초기화하거나 다양한 작업을 수행할 수 있습니다. "NoArgsConstructor"는 이름에서 알 수 있듯이, 매개변수 없이 인스턴스를 생성하는 생성자를 의미합니다. 즉, 해당 클래스의 인스턴스를 생성할 때 어떠한 매개변수도 필요하지 않습니다. 이러한 생성자는 주로 간단한 초기화 작업이나 디폴트 값으로 객체를 생성할 때 사용됩니다. 예를 들어, 다음은 "NoArgsConstructor"를 가진 .. 2023. 8. 23.
TIL) CPU의 동작 오늘 CPU의 동작에 대해 질문/답변하는 식으로 TIL을 작성해보았다. CPU의 동작 원리를 설명해주세요. 답변 : CPU(중앙 처리 장치)는 컴퓨터 시스템의 핵심적인 구성 요소로서, 프로그램의 명령을 실행하고 데이터를 처리하는 역할을 수행합니다. (명령어 읽고 수행) CPU는 제어장치(CU)가 수행할 명령어 정보를 가지고 오면 이 명령어를 해독하고 해독된 명령어를 수행합니다. 그리고 이 명령어의 수행 결과를 반영합니다. 꼬리질문 : 수행 결과를 반영한다는 것이 정확히 어떤 의미인지 설명해주세요. 답변 : "결과를 반영"을 한다는 의미는 CPU에서 수행된 연산의 결과를 메모리나 레지스터에 저장하는 단계를 말합니다. CPU는 연산을 수행한 후 그 결과를 해당하는 레지스터나 메모리 주소에 저장하여 다음 연산.. 2023. 8. 21.
WIL) ERD, Transport Layer 4계층 WIL 지난 일주일 동안 가장 인상 깊었던 배움에는 뭐가 있었지? 그 배움까지 다가가는데 어떤 어려움이 있었지? 그 과정에서 나는 무엇을 깨달았고, 어떤 감정/생각이 들었었지? 결과적으로, 현재 나의 상태는? 이 상태에서 다음 일주일을 더 잘 보내려면 어떻게 해야 할까? 지난 일주일 동안 가장 인상 깊었던 배움에는 뭐가 있었지? ERD 설계 - 코드 간 연관관계 Transport Layer 4계층 그 배움까지 다가가는데 어떤 어려움이 있었지? 팀프로젝트를 진행하기에 앞서 ERD를 설계해야했다. 이번 프로젝트에는 사용해야하는 엔티티와 테이블이 많았고 그 연관관계 또한 복잡했기 때문에 이틀에 걸쳐 ERD를 수정해야했다. 초반부터 ERD가 흔들리니 팀원 간의 협업과 소통에 어려움이 있었다. TCP와 UDP가 .. 2023. 8. 21.
TIL) @ResponseBody란 무엇인가! 오늘은 평소에 사용하지만 누군가가 @ResponseBody는 무엇이냐고 물었을 때 답할 수 있을 수준이 되기 위해 TIL을 정리해보았다. 우선 평소에 @ResponseBody를 사용한 코드를 가져와보았다. // 댓글 생성 @PostMapping("/myStudy/comment/{id}") @ResponseBody // id = myStudy의 id public CommentResponseDto createComment( @PathVariable Long id, @RequestBody CommentRequestDto requestDto, @AuthenticationPrincipal UserDetailsImpl userDetails) { return commentService.createComment(id,.. 2023. 8. 20.
팀프로젝트 : Swithme 스터디플래너 ERD 이번 팀 프로젝트는 개인 + 그룹 스터디 플래너이다. 설명 : 1. 개인이 게시물을 올릴 수 있고 그 게시물에는 원하는 목표를 적고 스톱워치/타이머 기능을 활용하여 스터디에 집중한다. 2. 공부 시간은 마이페이지엣서 누적시간을 조회할 수 있다. 3. 게시물은 메인 페이지에서 카테고리별로 리스트화되고 누구나 조회가 가능하다. 4. 개인은 관심사가 비슷한 유저를 검색/조회할 수 있고 유저를 그룹에 초대할 수 있다. 5. 그룹 상세 페이지에는 그룹의 공동 목표를 적고 누적 공부시간이 높은 순으로 유저순위가 표시된다. 꽤나 복잡한 연관관계를 가졌기 때문에 ERD를 설계하는 데에 시간이 오래 걸렸다. 특별히 고민이 필요한 연관관계는 스톱워치/타이머와 누적시간의 테이블을 어떻게 설정하는 지였다. 1. 스톱워치/타이.. 2023. 8. 17.
TIL) @EnableJpaAuditing 은 무엇인가? @EnableJpaAuditing 스프링 프레임워크에서 JPA를 사용할 때 제공하는 기능 중 하나입니다. 이 어노테이션을 사용하면 엔티티(모델 클래스)의 생성일자와 수정일자를 자동으로 기록해줍니다. 이렇게 하면 앞서 설명한 것처럼 데이터가 언제 생성되었고, 언제 변경되었는지를 추적하기 용이해지며, 보다 효과적으로 데이터를 관리할 수 있게 됩니다. JPA와의 관계 JPA는 "Java Persistence API"의 약자로, 자바 언어를 위한 데이터 영속성(데이터베이스와의 상호작용)을 처리하는 자바 표준 스펙입니다. JPA는 객체와 관계형 데이터베이스 사이의 매핑을 쉽게 해주는 도구이며, 객체 지향 프로그래밍 언어인 자바의 객체를 SQL 데이터베이스 테이블에 자동으로 매핑해주는 기능을 제공합니다. 간단히 말.. 2023. 8. 3.
TIL) Timestamped로 게시물 작성, 수정시간/날짜를 추가해보자 아래와 같이 게시물 작성, 수정, 삭제, 조회 API를 만들었다. 그런데 작성, 수정 날짜가 나오지 않아서 골머리를 앓고 있었다. 전체 게시글 목록 조회 API 제목, 작성자명(nickname), 작성 날짜를 조회하기 작성 날짜 기준으로 내림차순 정렬하기 게시글 작성 API 토큰을 검사하여, 유효한 토큰일 경우에만 게시글 작성 가능 제목, 작성 내용을 입력하기 게시글 조회 API 제목, 작성자명(nickname), 작성 날짜, 작성 내용을 조회하기 (검색 기능이 아닙니다. 간단한 게시글 조회만 구현해 주세요.) 게시글 수정 API 토큰을 검사하여, 해당 사용자가 작성한 게시글만 수정 가능 - 게시글 삭제 API 토큰을 검사하여, 해당 사용자가 작성한 게시글만 삭제 가능 기존에 사용했던 방법은 Entity.. 2023. 8. 3.
TIL) 투표 프론트앤드 부트스트렙 템플렛, 백엔드 DB 가져오기 오늘 한 일 - 투표 프론트앤드 부트스트렙 템플렛 찾기 - 프론트앤드에 투표 백엔드 DB 가져오기 [투표 프론트앤드 부트스트렙 템플렛 찾기] 사용한 투표 프론트앤드 부트스트렙 템플렛 https://www.bootdey.com/snippets/view/vs-voting-system Bootstrap html snippet. vs voting system Bootstrap snippet and html example. vs voting system, this UI example was created for web development using HTML, Javascript and CSS by Bootdey Admin www.bootdey.com 템플렛으로 제공되는 파일은 html과 css. **여기서 ht.. 2023. 7. 19.
TIL) Github에서 Git Clone을 해보자! 팀 프로젝트 진행을 위해 깃허브를 활용하기로 하였다. 팀장이 올린 베이스 코드를 가져오기 위해 깃클론을 시도하였다. 이번 TIL은 앞으로 자주 사용하게 될 터미널 용어와 깃허브에서 깃클론을 하여 코드를 가져오는 방법을 정리해 두었다. 1. 협업할 코드가 담긴 Url을 복제한다. 2. 터미널을 연다. 3. 코드를 복제할 장소로 이동한다. % pwd를 입력하면 현재 장소가 나온다. 예) /Users/me/desktop % cd [폴더명]을 입력하면 폴더 장소로 이동한다. 예) team이라는 폴더명에 넣고 싶다면 % cd team 하고 엔터를 친다. 그리고 % pwd 엔터를 치면 /Users/me/desktop/team이 된다. 4. % git clone [복사한 Url]을 입력한다. 그러면 코딩이 복제되어 .. 2023. 7. 17.
TIL) AOP, Refresh Token, 지연로딩과 즉시로딩 Spring Security를 적용했을 때 어떤 점이 도움이 되셨나요? Spring Security을 잘 적용하진 못했지만 Spring Security를 통해 사용자의 인증과 인가를 부여/확인하여 서비스를 이용할 수 있도록 도울 수 있음을 알게 되었다. Spring Security를 사용하지 않는다면 어떻게 인증/인가를 효율적으로 처리할 수 있을까요? Spring Security에서 인증/인가는 쿠키와 세션을 통해 이용하는 것이므로 Spring Security를 사용하지 않는다면 수동으로 세션을 체크하고 redirect를 하는 방식으로 진행되어야 할 것 같다. AOP에 대해 설명해 주세요! Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이다. 로직을 기준으로 핵심적인 관점.. 2023. 7. 14.
TIL) @Builder 빌더패턴 (Builder Pattern) @Builder Lombok에 속하는 인터페이스 클래스를 생성한다. The field annotated with @Default must have an initializing expression; that expression is taken as the default to be used if not explicitly set during building 생성자 또는 클래스 위에 @Builder을 입력하면 빌더패턴 코드가 build 된다. 생성자 상단에 선언 시 생성자에 포함된 필드만 build 된다. @Getter @NoArgsConstructor // 생성자를 자동으로 생성 @ToString // 필드 값을 String으로 변환 , toString() 메서드 자동 생성 @Builder public cl.. 2023. 7. 14.
TIL) Lv2 피드백 복습하며 배운 정보들 passwordEncoder 클라이언트가 입력한 비밀번호를 암호화해 주는 인터페이스 //비밀번호 확인 (password 가 다른 경우) if(!passwordEncoder.matches(password, user.getPassword())) { throw new IllegalArgumentException("비밀번호가 일치하지 않습니다."); } // 사용자가 입력한 Password와 인코딩한 상태에서의 비밀번호를 비교해주는 메서드 인터페이스이기 때문에 사용하려면 Configuaration에서 @Bean으로 등록해줘야 한다. @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } 객체를 생성하면 빈으로 등.. 2023. 7. 12.
TIL) Intellij 의문의 빨간줄! 항상 오류? 아니면 버그? Intellj로 코드를 작성하는 도중 의문의 빨간 줄이 생기게 되었다. 처음에는 오류인 줄 알았는데 왼쪽 파일들이 보이는 부분에는 빨간 줄이 뜨지 않았다. 재생버튼을 눌러 실행을 시켜보았을 때도 코드가 문제없이 동작하였다. 팀원과 논의 끝에 내린 결론이 Intellij에서 사용하고 있는 테마에 따라 가끔 버그가 아닌 것도 테마/폰트로 인해 빨간줄이 생기는 버그 현상이 있다고 한다. 다행히 의문은 풀렸지만 오류라고 표시되는 빨간줄이 신경에 쓰여 테마를 바꿀 계획이다. 나와 같이 오류가 없음에도 불구하고 빨간줄이 표시된다면 일단 실행을 한번 시켜보는 것도 시간을 절약하는 방법 같다. 2023. 7. 4.
WIL)오류를 인정하고 해결하자. 오류가 있다는 것은 얼마나 기쁜 일인가! WIL 지난 일주일 동안 가장 인상 깊었던 배움에는 뭐가 있었지? 그 배움까지 다가가는데 어떤 어려움이 있었지? 그 과정에서 나는 무엇을 깨달았고, 어떤 감정/생각이 들었었지? 결과적으로, 현재 나의 상태는? 이 상태에서 다음 일주일을 더 잘 보내려면 어떻게 해야 할까? 지난 일주일 동안 가장 인상 깊었던 배움에는 뭐가 있었지? Java 문법(생성자), Spring 문법(JWT, Spring Security 등) 코드는 거짓말을 하지 않는다. 그 배움까지 다가가는데 어떤 어려움이 있었지? 로그인, 회원가입 기능을 구현하는 과정이 어려웠다. 특별히 인증기능을 위해 JWT를 활용하여(?) 토큰을 발급하는 과정을 진행하는 것이 어려웠다. 기능을 수행하는 과정에서도 다양한 에러가 발생해서 매일마다 TIL을 생산.. 2023. 7. 2.
TIL) 생성자, DTO, Entity, Json 데이터 반환, create, read 구현 공부완료 오늘 한 일 1. Lv2 과제를 미완성으로 제출하였다. 미완성으로 제출한 이유: 로그인 및 회원가입 API 구현 이해 부족 시도: Lv1 게시물 생성 및 조회부터 다시 만들었다. 2. 만들면서 부족한 자바 문법과 스프링 문법을 공부하였다. 생성자, Dto, Entity의 개념을 이해하였다. [생성자] 출처: 스파르타코딩클럽 [내일배움캠프] 자료 생성자는 클래스로부터 인스턴스를 생성하는 메서드의 한 종류입니다. 클래스 내부에 정의하며, 메서드명이 클래스명과 일치해야 한다는 규칙이 있습니다. 생성자 내부에는 일반적으로 인스턴스 생성시 수행할 명령과 멤버변수의 초깃값을 설정하는 코드를 작성합니다. 여기까지 작성이 되면 인스턴스가 자동으로 생성되는 것일까요? 그렇지 않습니다. 이 부분이 생성자를 다루는 데에 .. 2023. 6. 30.
TIL) HttpMediaTypeNotSupportedException: Content-Type 'text/plain;charset=UTF-8' is not supported] 서버에서 개인 블로그에 게시물을 올리는 Post Method가 작동하는지 확인하기 위해 Postman을 사용하여 데이터를 확인하였다. 오류가 발생했다. HttpMediaTypeNotSupportedException: Content-Type 'text/plain;charset=UTF-8' is not supported] Postman에서는 Content-Type을 자동으로 text/plain로 부여한다고 하여 application/json으로 수정을 해보았다. 그랬더니 이번엔 오류 500이 떴다. 뭐지!!!! 오류메시지에 의하면 Post entity 내에 content 임을 확인하였다. [오류 메시지] Servlet.service() for servlet [dispatcherServlet] in conte.. 2023. 6. 27.
TIL) Spring에서 Error creating bean with name 에러 발생! Spring으로 과제 진행 중 실행시킬 때 다음과 같은 에러 메시지가 나왔다. org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'productController' defined in file [/Users/...controller/ProductController.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'productService' defined in file [/Users/...myselectshop/service/ProductServic.. 2023. 6. 26.
WIL) Spring의 이해 WIL 지난 일주일 동안 가장 인상 깊었던 배움에는 뭐가 있었지? 그 배움까지 다가가는데 어떤 어려움이 있었지? 그 과정에서 나는 무엇을 깨달았고, 어떤 감정/생각이 들었었지? 결과적으로, 현재 나의 상태는? 이 상태에서 다음 일주일을 더 잘 보내려면 어떻게 해야 할까? 지난 일주일 동안 가장 인상 깊었던 배움에는 뭐가 있었지? Spring으로 코드를 짠다는 의미와 Spring Boot가 가진 이점 그 배움까지 다가가는데 어떤 어려움이 있었지? Spring 문법을 배우기 시작하면서 그 문법을 완전히 이해하기도 전에 실습을 따라가야 했었다. 때문에 이 코드가 어떤 흐름과 원리로 진행이 되는지 확신이 서지 않았다. 그 과정에서 나는 무엇을 깨달았고, 어떤 감정/생각이 들었었지? Spring 강의를 듣고 교안.. 2023. 6. 25.
TIL) Spring Boot Error : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled 문제: 스프링 부트로 작업 중에 실행버튼을 누르니 에러 메시지가 확인되었다. Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$Enable.. 2023. 6. 23.
TIL) @Pattern 으로 이메일 데이터 검증하기 다음과 같은 과제를 받았다. Bean Validation의 애너테이션 @Pattern을 사용해서 회원 가입 Email 데이터 검증을 진행합니다. Email 형식 : 계정@도메인.최상위도메인 정규 표현식 (Regular Expression) 같은 검색어를 구글링하여 방법을 찾습니다. 문제는 이 애너테이션을 어디다가 넣어야 하고 무엇을 수정해야 하는지 알 수가 없었다. 구글링을 하여 보편적으로 사용하는 이메일을 위한 정규 표현식을 찾아보았다. 이메일 형식 (exam@exam.com) 의 정규식 표현 @Pattern(regexp = "^[A-Za-z0-9_\\.\\-]+@[A-Za-z0-9\\-]+\\.[A-Za-z0-9\\-]+$") 정규 표현식은 DTO파일, 패키지에 추가하면 된다고 하였다. 그러나 의심부.. 2023. 6. 21.
TIL) 코드 작성 시, 괄호 조심하자! ( )/{ } 오늘은 가벼운 문제지만 시스템이 돌아가지 않을 수 있는 사항이기에 경험한 에러를 공유하고자 한다. 문제: JdbcTemplate 사용방법을 배우기 위해 DB에 접근하기 위한 정보를 작성하였다. 이때, my sql을 설치할 때 입력한 비밀번호를 적어야 했다. 하지만 실행을 시켜보니 root 쪽에 문제가 발생했다고 에러 메시지가 떴다. [입력한 코드] ... spring.datasource.url=jdbc:mysql://localhost:3306/memo spring.datasource.username=root spring.datasource.password={비밀번호} spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ... 시도: 구글링을 하여 .. 2023. 6. 15.
TIL) 오탈과 탈자를 조심하자! 문제: 메모장 만들기 실습에서 메모를 저장하는 POST 가 구현되지 않았다. [입력 코드] package com.sparta.memo.controller; import com.sparta.memo.dto.MemoRequestDto; import com.sparta.memo.dto.MemoResponseDto; import com.sparta.memo.entity.Memo; import org.apache.catalina.users.MemoryRole; import org.springframework.web.bind.annotation.*; import java.util.*; @RestController @RequestMapping("/api") public class MemoController { pri.. 2023. 6. 14.
TIL) MySQL 데이터베이스 생성하는 법 문제: 학습을 진행하기 위해 MySQL을 다운로드하였다. 그러나 터미널에 데이터베이스를 생성하려고 하는데 생성이 되지 않았다. 위치이동을 위해 cd /usr/local/mysql/bin 를 넣었고, MySQL 접속을 위해 ./mysql -u root -p를 넣었다. 그랬더니 비밀번호를 입력하라고 해서 노트북 비밀번호를 입력하였더니 에러가 떴다. 시도: 구글링과 블로그를 찾아보니 비밀번호는 노트북/컴퓨터의 비밀번호가 아니라 SQL을 설치할 때 입력한 root 사용자의 비밀번호였다. 해결: root 사용자의 비밀번호를 입력하니 접속이 완료되었고 CREATE DATABASE academy;를 입력하여 데이터베이스를 생성하였다. 참고로 데이터베이스 확인방법은 show databases;이며 데이터베이스 이동하는.. 2023. 6. 13.
WIL) 6월 2째주 주간회고 / Java 문법과 키오스크 관리자 모드 만들기 WIL 지난 일주일 동안 가장 인상 깊었던 배움에는 뭐가 있었지? 그 배움까지 다가가는데 어떤 어려움이 있었지? 그 과정에서 나는 무엇을 깨달았고, 어떤 감정/생각이 들었었지? 결과적으로, 현재 나의 상태는? 이 상태에서 다음 일주일을 더 잘 보내려면 어떻게 해야 할까? 지난 일주일 동안 가장 인상 깊었던 배움에는 뭐가 있었지? 협업하는 방법 (의사소통, 책임감, 끈기) 자기 객관화 if문 응용하여 사용하기 (아직 ing) 그 배움까지 다가가는데 어떤 어려움이 있었지? 예쁜 말과 정확한 의사전달을 하기 위해 한 번 더 생각하고 이야기하였다. 정확하게 의사전달하는 것이 어려웠는데 계속해서 말을 paraphrasing 하고 연습하니 도움이 되었다. 풀리지 않는 문제를 인정하고 혼자 충분히 고민하는 시간을 주.. 2023. 6. 11.
TIL) If문, 넌 내꺼야 (੭ꐦ •̀Д•́ )੭* ᑦᵒᔿᵉ ᵒᐢᵎᵎ 드디어 2번째 팀과제를 마쳤다. 결론부터 말하자면 내가 구현한 기능은 발전과 스스로에 대한 고민이 매우 필요한 코드였으므로 앞으로 더 열심히 해야겠다는 생각이 많이 들었다. 오늘 TIL은 아주아주 간단한 if문 사용법을 풀어쓴 경험담이다. 문제: 코드를 병합하는 과정에서 기존에 내가 만든 주문 현황보다는 다른 팀원이 대기주문목록, 완료주문목록(주문 건 별로 리스트를 add 하는 arraylist메서드)에 사용한 코드를 긁어오는 것이 소비자 입장에서 보았을 때 편리할 것이라 판단되었다. 그래서 코드를 수정하는 과정이었고 주문완료된 목록, 대기 중인 목록을 순차적으로 보이도록 해야 했다. 이때, if문을 활용하여 주문완료되지 않거나 대기중인 목록이 없으면 완료되지 않았다 / 목록이 없다는 문구를 띄어야 했다.. 2023. 6. 9.
TIL) IntelliJ와 Git으로 협업을 해보자 TIL 기준 1. 어떤 문제가 있었는지 2. 내가 시도해 본 것들 3. 어떻게 해결했는지 4. 뭘 새롭게 알았는지 =문시해알 문제: 나의 상황은 Intelij로 코드를 작업 중이었으며 git을 사용하여 Github repository에 수정된 코드를 올려야 하는 상황이다. 이미 master branch는 생성이 되어있었고 4명의 팀원들이 협업하는 과정이기 때문에 내가 수정한 부분을 머지(Merge)하기 위해서 나의 브랜치를 커밋, 푸시하고 마스터 브랜치에 푸시와 머지를 하였다. 머지 과정에서 충돌 부분이 생겼으나 고민하지 않고 accept right를 눌렀더니 수정되어야 할 부분이 수정되지 않은 상황이었다.(Red Highlight!) 우선 충돌을 해결하기 위해 튜터 님께 부탁하여 revert과정을 거쳤.. 2023. 6. 8.
TIL) 최근 주문목록만 출력할 수 있도록 if문 사용하기 TIL 기준 1. 어떤 문제가 있었는지 2. 내가 시도해 본 것들 3. 어떻게 해결했는지 4. 뭘 새롭게 알았는지 =문시해알 오늘은 1문제에 봉착하여 이를 풀어가는 과정을 기록하였다. 키오스크를 업그레이드하는 팀과제를 부여받았는데 내가 맡은 업무는 소비자가 주문 현황 화면을 선택하였을 때 다음과 같은 정보를 포함하는 화면을 만드는 것이었다. 주문 현황에서는 맨 위에 완료된 최근주문 3개를 출력한다. 그 아래에 대기 중인 모든 주문 목록을 출력한다. 가 포함되어 있어야 했고 기존에 만들어 놓은 코드는 최근 주문과 대기 중인 주문 목록이 모두 출력 가능하였으나 최근 주문 3개를 출력하는데 어려움이 있었다. (문제) [ 현재 상황] public void OrderStatus() { //주문현황 System.o.. 2023. 6. 8.