본문 바로가기

반응형

분류 전체보기

(48)
플러터 flutter primarySwatch 적용 안 됨 / 적용하는 방법 처음으로 플러터 앱을 만들면서 시키는대로 했는데 제대로 적용되지가 않아서 구글링을 열심히 해서 찾아냈다.  수정전 import 'package:flutter/material.dart';void main(){ runApp(const MyApp());}class MyApp extends StatelessWidget{ const MyApp({super.key}); @override Widget build(BuildContext context){ return MaterialApp( theme: ThemeData( primarySwatch: Colors.lightBlue, ), home: Scaffold( appBar: AppBar( ..
비동기 통신만으로 웹페이지를 만들지 않는 이유 이번에 ajax를 간단히 공부하면서 어떤 경우에 비동기 통신을 사용하는지 궁금증이 생겼다. Sync 통신만 사용해서 웹페이지를 전부 구성할 수도 있고, Async 통신만으로 구현할 수도 있다. 하지만 그렇게 사용하는 경우는 잘 없는 것 같고 sync 통신으로 사용하되 필요한 경우에 Async 통신을 사용하는 경우가 많아보인다. 왜 Async 통신만으로 페이지를 만들지 않는지 궁금해져서 글을 쓰게 되었다. 동기(Sync) 통신 클라이언트가 서버에 요청을 보낸 후 응답이 올 때까지 대기한다. Html 파일이 다 만들어진 후에 페이지를 이용할 수 있다. 서버에 직접 요청을 보낸다. 동기 통신을 하는 경우 블로그에 글을 작성한 후 완료를 누르면 작성한 내용이 서버로 전송되고 페이지 주소가 변화되며 새로운 페이지..
정렬 / 버블정렬 / 선택정렬 정렬은 말 그대로 무작위로 나열된 숫자들을 내림차순 또는 오름차순으로 정렬하는 방법이다. 정렬 방법은 다양하게 있는데 버블정렬과 선택정렬에 대해 정리해보려고 한다. 나만 그런지 모르겠는데 정렬 이름만 듣고 무슨 정렬인지 바로 떠오르지가 않고 자꾸 헷갈려서 이번에 정리하면서 기억해보려고 한다. 버블정렬 (bubble sort) 버블정렬은 인접한 두 수를 비교해서 정렬하는 방법이다. 정렬이 완료될 때까지 루프를 돌아서 정렬시킨다. 다음의 과정을 거친다. 1번째 루프 1. 5 10 7 22 4 위 배열을 오름차순 배열로 만들기 위해 0 ~ 4 번 숫자라고 했을 때 0번 자리 숫자부터 하나 큰 자리에 있는 숫자와 비교하여 정렬을 한다. 0번자리와 1번자리를 비교했을 때 5 < 10 이기 때문에 자리를 바꾸지 않..
백준 2504 괄호의 값 java 문제 설명 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X가 올바른 괄호열이면 ‘(X)’이나 ‘[X]’도 모두 올바른 괄호열이 된다. X와 Y 모두 올바른 괄호열이라면 이들을 결합한 XY도 올바른 괄호열이 된다. 예를 들어 ‘(()[[]])’나 ‘(())[][]’ 는 올바른 괄호열이지만 ‘([)]’ 나 ‘(()()[]’ 은 모두 올바른 괄호열이 아니다. 우리는 어떤 올바른 괄호열 X에 대하여 그 괄호열의 값(괄호값)을 아래와 같이 정의하고 값(X)로 표시한다. ‘()’ 인 괄호열의 값은 2이다. ‘[]’ 인 괄호열의 값은 3이다. ‘(X)’ 의 괄호값은 ..
백준 11659 구간 합 구하기4 / JAVA 분류 누적 합 제출 일자 2023년 11월 27일 21:25:16 문제 설명 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출력 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다. 전에 풀었던 문제인데 Scanner 대신 BufferedReader를 사용해서 풀었다. 알고리즘은 동일하다. bf사용해서 입력받고 입력받으면서 합 구해서 합배열 바로 생성함 입력받는 동시에 구간합 알고리즘으로 답 구한 후 result 배열에..
Spring mvc Validation(검증) / bindingResult rejectedValue Spring mvc에서 검증을 하는 방법 중 하나로 bindingResult를 사용한다. Controller가 실행될 때 메서드에 파라미터로 BindingResult를 생성하고 거기에 검증오류를 저장해서 View에 전달해준다. View는 이 정보를 전달받아 오류를 보여주는데에 활용한다 if (item.getPrice() == null || item.getPrice() 1000000) { bindingResult.addError(new FieldError("item", "price", item.getPrice(), false, null, null, "가격은 1,000 ~ 1,000,000 까지 허용합니다.")); } 이 코드의 경우 item객체의 price..
타임리프 스프링 통합 타임리프는 스프링 없이도 동작하지만 스프링과 통합을 위한 다양한 기능을 편리하게 제공한다 SpringEL 문법 통합 스프링 빈 호출 지원 th:object, th:field => 편리한 폼 관리를 위한 추가 속성 폼 컴포넌트 기능 입력 폼 처리 th:object form 태그에서 th:object를 통해 form에서 어떤 객체를 사용하는 지 설정할 수 있다. (서버에서 이 객체를 생성해서 넘겨주어야 한다) th:object="${item}으로 설정하면 form 태그 안에서 *{itemName}을 사용하면 타임리프가 알아서 ${item.ItemName}으로 해석해준다 th:field th:field를 사용하면 타임리프가 렌더링 할 때 field의 이름을 사용하여 알아서 id, name, value값을 설정..
타임리프(thymeleaf) 템플릿조각 / 템플릿 레이아웃 타임리프를 이용하면 여러 페이지에 반복적으로 사용되는 내용을 쉽게 관리할 수 있다 템플릿 조각 템플릿 조각 생성 푸터 자리 입니다. 파라미터 자리 입니다. 푸터 태그로 다른 곳에 포함시킬 수 있는 코드 조각을 생성한다 th:fragment 속성에 지정된 이름을 이용해 다른 파일에서 사용한다 두번째와 같이 파라미터도 사용가능하다 템플릿 조각 사용 insert th:insert를 이용하면 사용한 자리에 그대로 템플릿 조각을 삽입한다. 부분 포함 insert ~{}는 fragment로 지정한 템플릿을 사용할 때 쓰이는 문법이다 ~{} 내부에 경로 :: fragment이름 으로 사용한다 ~{}는 생략 가능해서 로 사용할 수도 있다 위 코드 실행후 소스 보기를 하면 다음과 같이 div 태그는 그대로 있고 foot..

반응형