본문 바로가기
반응형

분류 전체보기1065

[JavaScript] : 자바스크립트를 활용한 간단한 계산 시스템 const calculator = { plus: function (a, b) { return a + b; }, minus: function (a, b) { return a - b; }, times: function (a, b) { return a * b; }, divide: function (a, b) { return a / b; }, power: function (a, b) { return a ** b; }, }; const plusResult = calculator.plus(2, 3); const minusResult = calculator.minus(plusResult, 10); const timesResult = calculator.times(10, minusResult); const divide.. 2022. 1. 27.
[프로그래머스] : 콜라츠 추측 파이썬 풀이 및 해설 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. 문제 설명 입력된 수, num은 1 이상 8000000 미만인 정수입니다. 제한 사항 nresu.. 2022. 1. 27.
[TIL] : 92 일일 배움을 위한 Today I Learned ! 프로그래머스 프로그래머스에서 행렬의 덧셈을 파이썬으로 풀어봤다. 알고리즘 풀이는 익숙해 지지가 않는다.. 매우 매우 노력이 필요한 부분이 될 것 같다.. 2022.01.26 - [Algorithm/프로그래머스] - [프로그래머스] : 행렬의 덧셈 파이썬 풀이 JavaScript 자바스크립트 노마드코더 강의를 듣고 있다. 아직 기초 부분이지만 내가 아직 Java도 완벽하지 않기 때문에 혹시 놓치는 것이 있을까봐 꼼꼼하게 듣는 중이다. 때문에 아직은 기초 파트만 갈고닦고 있다. 2022.01.26 - [프로그래밍언어/JavaScript] - [JavaScript] : Object 기초 실습 2022.01.26 - [프로그래밍언어/JavaScript] - [J.. 2022. 1. 26.
[코딩&리뷰] : 스터디 4회차 스터디 4회차 오늘은 새로운 쌤과 함께 4회차를 진행했다. 4회차만에 완전한 4명이 처음으로 스터디를 진행하게 되었다. 전에 진행한 내용과 TO-DO List를 통한 공부한 내용을 발표했고 당일 목표는 강의 한 섹션 중 남은 부분을 완강하고 복습하는 것 이였는데 완료하지 못 했다. 공모전을 진행하면서 했었던 팀 프로젝트에서 Controller를 그냥 썼는데 알고 보니 FrontController라는 개념도 있었고 JSP에서 .do로 받았는데 각 HTTP 요청에 따른 Controller 응답 방식도 여러가지가 있었다. 이런 것들을 하나도 모르고 프로젝트를 만들었으니 지금 보면 답이 없는 코드로 이루어진 약간 TDD 개념 정도의 프로젝트였던 것 같다. 빠르게 코드만 돌아가게 만들었지 코드 정리가 하나도 안 .. 2022. 1. 26.
[Spring Boot] : 정적 리소스 및 뷰 템플릿 스프링 서버에서 응답 데이터를 받는 방법은 크게 3가지 정도로 나누어진다. 정적 리소스 HTML, CSS, JS 뷰 템플릿 사용 웹 브라우저에 동적인 HTML을 제공할 때 뷰 템플릿을 사용한다. HTTP 메시지 사용 HTTP API를 제공하는 경우에 HTML이 아니라 데이터를 전달해야 한다. 떄문에 HTTP 메시지 바디에 JSON 같은 형식으로 데이터를 실어 보낸다. Spring Boot는 /static, /public, /resources, /META-INF/resources 디렉토리에 있는 정적 리소스를 제공한다. src/main/resources는 리소스를 보관하는 곳이면서 클래스 패스의 시작 경로이다. 이 디렉토리에 리소스를 넣어두면 스프링 부트가 정적 리소스로 서비스를 제공하게 된다. /src/.. 2022. 1. 26.
[Spring Boot] : HTTP 요청 메시지 JSON HTTP API에서 주로 사용하는 JSON 데이터 형식을 조회한다. @PostMapping("/request-body-json-v1") public void requestBodyJsonV1(HttpServletRequest request, HttpServletResponse response) throws IOException { ServletInputStream inputStream = request.getInputStream(); String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); log.info("messageBody={}", messageBody); HelloData helloData = objectM.. 2022. 1. 26.
[Spring Boot] : HTTP 요청 메시지 - 단순 텍스트 관련 알아보기 HTTP message body에 직접 데이터를 담아 요청하는데 HTTP message body의 데이터를 InputStream을 사용해 직접 읽을 수 있다. 요청 파라미터와 달리 HTTP message body를 통해 데이터가 넘어 오는 경우엔 @RequestParam, @ModelAttribute를 사용할 수 없다. @PostMapping("/request-body-string-v2") public void requestBodyStringV2(InputStream inputStream, Writer responseWriter) throws IOException { String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.U.. 2022. 1. 26.
[JavaScript] : 자바스크립트 배열 기초 활용, Recap **const toBuy = ["potato", "tomato", "pizza"]; console.log(toBuy); toBuy[2] = "water"; console.log(toBuy); toBuy.push("meat"); console.log(toBuy);** JavaScript 배열을 사용하고 값을 추가하는 것을 간단하게 진행했다. 아직도 문법 파트여서 빨리 넘어가고 있는 중이다. 위 로그 출력 결과이다. 2022. 1. 26.
[JavaScript] : Function 기초 실습 function plus(a, b) { console.log(a + b); } plus(4,3) 형식은 이렇게 사용하면 된다. 다른 언어랑 큰 차이가 없다. 문법 파트는 빨리 넘어간다. 2022. 1. 26.
[JavaScript] : Object 기초 실습 constplayer= { name: "OH", points: 10, fat: true, }; console.log(player); player.lastName = "JU"; console.log(player); player.points = player.points + 20; console.log(player); 간단하게 JavaScript의 Object에 대해서 공부했다. 따로 수정하는 방법도 코딩했는데 기초 문법은 빨리 지나가야겠다. 페이지에서 확인해 보면 위 처럼 나온다. 2022. 1. 26.
[프로그래머스] : 행렬의 덧셈 파이썬 풀이 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 문제 설명 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. 제한 조건 arr1arr2return [[1,2],[2,3]][[3,4],[5,6]][[4,6],[7,9]] [[1],[2]] [[3],[4]] [[4],[6]] 입출력 예시 def solution(arr1, arr2): for i in range(len(arr1)): for j in range(len(arr1[i])): arr1[i][j] += arr2[i][j] return arr1 풀이 코드 def solut.. 2022. 1. 26.
[TIL] : 91 일일 배움을 위한 Today I Learned ! 스터디 회고 스터디 활동 중 하나인 월 마다 작성하는 회고를 작성했다. 한 달간 내 생각을 정리할 수 있는 시간이라 좋았다. 앞으로 해보고 싶은 것도 정리해 보았다. 2022.01.25 - [발전소/회고] - [회고] : 22년 1월 이야기 Spring Boot 스프링 부트 강의를 들으면서 코딩하고 강의를 다 마치고 따로 복습을 진행하면서 노션에 기록했고 그 기록을 블로그에 쓰고 있다. 원래는 더 공부하려 했지만 오늘은 컨디션이 안 좋아서 길게 공부하지는 못 했다. 2022.01.25 - [Framework/Spring Boot] - [SpringBoot] : Spring Boot Jar 프로젝트 생성 2022.01.25 - [Framework/Sprin.. 2022. 1. 25.
[Spring Boot] : HTTP 요청 파라미터 - @ModelAttribute 실제 개발을 할 떄 요청 파라미터를 받아 객체를 만들고 값을 넣어줘야 하는데 이 과정에서 스프링이 자동화로 지원해주는 기능이 있다. 이 기능에 대해서 알아본다. import lombok.Data; @Data public class HelloData { private String username; private int age; } 먼저 요청 파라미터를 바인딩 받을 객체를 만들었다. lombok 라이브러리를 통해 @Data 어노테이션을 사용했다. @ResponseBody @RequestMapping("/model-attribute-v1") public String modelAttributeV1(@ModelAttribute HelloData helloData) { log.info("username={}, ag.. 2022. 1. 25.
[Spring Boot] : HTTP 요청 파라미터 - @RequestParam @RequestParam을 사용하면 요청 파라미터를 매우 편리하게 사용이 가능하다. @RequestParam은 스프링이 제공한다. @ResponseBody @RequestMapping("/request-param-v2") public String requestParamV2( @RequestParam("username") String memberName, @RequestParam("age") int memberAge) { log.info("username={}, age={}", memberName, memberAge); return "ok"; } 한 번에 많은 어노테이션이 보이는데 정리를 해보면 @ResponseBody는 View 조회를 무시하고 HTTP message body에 직접 해당 내용을 입력하고.. 2022. 1. 25.
[Spring Boot] : HTTP 요청 파라미터 , 쿼리 파리미터, HTML Form 저번에 강의에서 서블릿으로 진행한 HTTP 요청 데이터 조회를 스프링으로 만들어 본다. 클라이언트에서 서버로 요청 데이터를 전달할 때 3가지 방법이 주로 사용되는데 GET 쿼리 파라미터 POST - HTML Form HTTP message body 이 세 가지가 주로 사용 된다고 한다. @RequestMapping("/request-param-v1") public void rquestParamV1(HttpServletRequest request, HttpServletResponse response) throws IOException { String username = request.getParameter("username"); int age = Integer.parseInt(request.getParam.. 2022. 1. 25.
[Spring Boot] : HTTP 요청 기본, 헤더 조회 어노테이션 기반 스프링 컨트롤러는 다양한 파라미터를 지원하는데 이번에는 HTTP 헤더 정보를 조회하는 방법을 알아본다. @Slf4j @RestController public class RequestHeaderController { @RequestMapping("/headers") public String headers( HttpServletRequest request, HttpServletResponse response, HttpMethod httpMethod, Locale locale, @RequestHeader MultiValueMap headerMap, @RequestHeader("host") String host, @CookieValue(value = "myCookie", required = fa.. 2022. 1. 25.
[Spring Boot] : 요청 매핑 API 예시 @RestController @RequestMapping("/mapping/users") public class MappingClassController { @GetMapping public String user() { return "get users"; } @GetMapping("/{userId}") public String findUser(@PathVariable String userId) { return "get userId=" + userId; } } @RequestMapping을 클래스 레벨에 매핑 정보를 두면 메서드 레벨에서 해당 정보를 조합해서 사용한다. 위에 GetMapping은 경로가 /mapping/users인 것이고 아래 findUser 메서드의 GetMapping의 경로는 /mapp.. 2022. 1. 25.
[Spring Boot] : @RequestMapping, 요청 매핑 종류 및 사용법 @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMapping("/hello-basic") public String helloBasic() { log.info("helloBasic"); return "ok"; } } @RestController는 반환 값으로 뷰를 찾는 것이 아니라 HTTP 메시지 바디에 바로 입력한다고 한다. 따라서 실행 결과를 바로 OK로 받을 수 있다. @RequestMapping(”/hello-basic”)은 /hello-basic URL 호출이 오면 이 메서드가 실행이 되도록 한다. 배열을 통해 다중 설정도 가능하다. @Ge.. 2022. 1. 25.
[Spring Boot] : Spring Boot Log 사용하기 , Lombok 라이브러리 로그 강사님이 보너스로 로깅에 관해서도 알려주셨다. 팀 프로젝트 할 때 log4j를 통해 print문을 대신해서 로그를 찍었는데 역시 왜 찍는지, print와 뭐가 다른지 모르고 그냥 사용만 하고 있었는데 이번 강의를 통해 조금으 더 알게 되었다. 강사님이 이번 강의에서도 깊게는 다루지 않고 간단하게만 알아본다고 하셨다. 조금 더 깊게 사용하면 어떻게 사용할 수 있는지도 따로 찾아봐야 할 것 같다. 우선, 따로 찾아본 바로는 로그와 print문의 차이로는 print는 바로 출력이 되고 따로 찾아 볼 수는 없지만 log를 찍게 되면 나중에 log 파일을 뒤져 그동안 찍힌 log를 찾아 볼 수 있다고 한다. 이게 아직 활용은 해본 적은 없지만 작년에 학교 수업을 들으면서 Hadoop을 사용할 때 로그 파일을 모아.. 2022. 1. 25.
[SpringBoot] : Spring Boot Jar 프로젝트 생성 스프링 프로젝트를 생성해 주었다. 여기←에서 생성을 했다. 간단하게 설정을 하고 프로젝트를 다운로드 받을 수 있다. 이번에는 War가 아니라 Jar을 선택했다. JSP를 사용하지 않기 때문에 Jar를 사용하는 게 더 좋다. Spring Boot를 사용하면 이 방식을 주로 사용한다. Jar를 사용하면 내장 서버를 사용하게 webapp 경로도 따로 사용하지 않는다. 즉, 내장 서버 사용에 최적화가 되어 있다고 볼 수 있다. Welcome 페이지는 /resources/static/index.html 위치에 두면 알아서 웰컴 페이지로 처리해 준다. 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 참고하여 공부하였습니다. 2022. 1. 25.
[회고] : 22년 1월 이야기 목차 1. 내 마음 속 생각을 다루는 회고 2. 나는 스스로 성장 중이라는 것을 느끼고 있다. 3. 나는 배우는데 돈을 안 아낀다. 4. 나는 스터디를 한 번도 들어가 본 적이 없다. 5. 같은 길을 걷는 사람들 6. 아직 안 끝난 이 달이 아직도 내겐 특별하다. 7. 굿즈를 보내주신다고 하셨다. 8. 참 골치가 아프다. 9. 위기가 왔다. 10. 노력이라는 단어는 이럴 때 쓰는 게 아닌가? 11. 해야 할 것이 아니라 하고 싶은 것 12. 성공은 매일 반복한 작은 노력들의 합이다. 1. 내 마음 속 생각을 다루는 회고 22년 첫 회고를 작성한다. 한 살 더 먹고 처음으로 살아온 한 달을 되돌아 보는 시점이다. 회고를 통해 명확하게 잘잘못을 따지고 내가 이룬 것과 못 이룬 것 들을 나누어 구분지을 수 있.. 2022. 1. 25.
반응형