전체 글 235

자원(asset) 목록 조회

기존에는 AssetManifest.json 파일을 통해 사용가능한 자원목록을 조회했었다. 하지만 플러터 프레임워크에서 더이상 사용하지 않아서 이후 릴리즈 버전에서는 지원하지 않을수도 있기 때문에 json 파일 대신 AssetManifest API를 이용하는 것을 flutter documentaion에서 권고하고 있다. 참고: https://docs.flutter.dev/release/breaking-changes/asset-manifest-dot-json Removal of AssetManifest.json Built Flutter apps will no longer include an AssetManifest.json asset file. docs.flutter.dev AssetManifest API는..

개발 등/FLUTTER 2024.03.07

Failure to install and run Docker in WSL Ubuntu 22.04 (works in 20.04): "Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?..

WSL 로 설치한 Ubuntu에서 Docker를 설치해서 실행할 경우 다음과 같은 에러가 발생할 수 있다. $ sudo docker run hello-world $ docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. docker version 등으로 확인하면 잘 나온다. 다만 문제가 있어 데몬이 실행이 안되어 발생하는 오류다. 도커 실행 후 cat /var/log/docker.log를 확인하면 마지막 라인에 iptables 설정에 문제가 있어 데몬 실행이 되지 않은 것을 확인할 수 있다. sudo update-alternatives --config iptables 명..

개발 등/DOCKER 2023.09.04

root 계정으로 도커 컨테이너 실행하기

docker exec 명령어로 도커 컨테이너에 접속하면 컨테이너 사용자 계정으로 로그인이 된다. 컨테이너 리눅스에 프로그램을 설치할 경우 root 퍼미션이 없어서 안되는 경우가 있다. 이 경우에는 컨테이너 접속할 때 root 계정으로 접속할 수 있는 방법이 있다. linux 의 root uid 가 0이므로 docker exec 명령어 다음 -u 옵션 뒤에 0의 값을 주면 된다. $ docker exec -u 0 예를 들어 다음과 같이 실행하면 된다. $ docker exec -u 0 94fca2f2d5f4 whoami root

개발 등/DOCKER 2023.08.22

@PathVariable, @RequestParam 으로 Entity 객체 자동 매핑

SpringMVC으로 화면에서 파라미터를 전달받을 때 일반적으로 @RequestParam 혹은 @PathVariable 을 이용해서 다음과 같이 처리한다. @RequestMapping("/{id}") String showUserForm(@PathVariable("id") String id, Model model) { User user = userRepository.findById(id); model.addAttribute("user", user); return "userForm"; } Spring에서는 DomainClassConverter 를 이용해서 코드를 더 단순화하게 해준다. @RequestParam이나 @PathVariable로 받은 인자와 뒤에 선언한 Entity 타입을 추론해서 해당 Repos..

개발 등/SPRING 2023.06.01

H2 Database, Database not found, either pre-create it or allow remote database creation (not recommended in secure environments) 오류

H2 데이터베이스를 설치한 후 1. 실행하려고 할 때 2. 데이터베이스명을 수정한 후 재실행할 때 다음과 같은 에러가 나오면서 접속이 안되는 경우가 발생한다. Database "C:/Users/.../test" not found, either pre-create it or allow remote database creation (not recommended in secure environments) 이유는 H2를 서버모드로 실행할 경우, 1.4.198 이후 버전부터는 보안 문제로 데이터베이스가 자동으로 생성되지 않기 때문이라고 한다. 해결방법은 메모리 모드로 실행하여 디폴터 디렉토리에 데이터베이스를 생성한 다음 서버 모드로 실행하면 된다. 이렇게 하면 기본 디렉토리에 test.mv.db 라는 파일이 생성..

개발 등/DATABASE 2023.05.21

Spring HATEOAS with Spring Boot >= 2.2

HATEOAS(Hypermedia As The Engine Of Application State)란 REST API를 사용하는 클라이언트가 서버와 동적으로 상호작용이 가능하도록 하는 것이다. 간단히 말하면첫째 Hypermedia를 통해서 애플리케이션의 상태 전이가 가능해야 한다.둘째 Hypermedia를 통해서 자기 자신에 대한 정보가 있어야 한다. 이를 사용하기 위해 Spring HATEOAS 를 의존성에 추가해야 한다. org.springframework.boot spring-boot-starter-hateoas 사용법은 Spring Boot 2.2 이상과 그 미만의 버전에서 달리한다. 여기에서는 2.2 이상을 기준으로 설명한다. @PostMapping() public ResponseEntity cr..

개발 등/SPRING 2023.04.29

JUnitParams (도메인 테스트에 매개변수 이용)

JUnit을 사용해서 테스트를 진행하면 매개변수를 사용할 수가 없다. 그런데 도메인 단위의 테스트를 진행하다 보면 같은 코드에 매개변수만 달리하는 중복된 코드가 발생하는 경우가 종종 있다. 이럴 경우 JUnitParams 를 사용하면 매개변수를 이용할 수 있어서 테스트 코드가 훨씬 간결해진다. 사용법은 JUnit4와 JUnit5에 따라 다르다. 1. JUnit4 다음과 같이 의존성을 추가한다. Maven pl.pragmatists JUnitParams 1.1.1 test Gradle testCompile 'pl.pragmatists:JUnitParams:1.1.1' 다음과 같이 테스트 코드를 작성하면 된다. @RunWith(JUnitParamsRunner.class) public class PersonT..

개발 등/SPRING 2023.04.28

@WebMvcTest VS @AutoConfigureMockMvc

스프링 부트에서 컨트롤러단의 테스트 클래스를 작성하기 위해서 보통 @SpringBootTest + @AutoConfigureMockMvc 어노테이션으로 작업을 하는 경우가 많다. @SpringBootTest를 이용해서 테스트를 작성하게 되면 스프링 빈을 모두 로드하기 때문에 통합테스트가 아닌 경우에 적합하지 않다. 특히 컨트롤러단의 테스트를 위해서는 Web Layer에 필요한 요소만 로드할 수 있는 테스트 방식이 더 적합하다. 이럴 경우 @WebMvcTest(로드할 컨트롤 클래스) 어노테이션을 사용한다. @WebMvcTest(EventController.class) public class EventControllerTests { @Autowired MockMvc mockMvc; @Test void cre..

개발 등/SPRING 2023.04.26

이층에서 본 거리 원래 가사

수녀가 지나가는 그 길가에서 어릴 적 내 친구는 구두를 닦고 / 어릴 적 내 친구는 외면을 하고 길거리 약국에서 담배를 팔듯 세상은 모순 속에 깊어만 가고 / 세상은 평화롭게 갈 길을 가고 분주히 길을 가는 사람이 있고 온종일 껌을 파는 아이도 있고 / 온종일 구경하는 아이도 있고 시간이 숨을 쉬는 그 길가에는 낯설은 그리움이 나를 감싸네 이층에서 본 거리 평온한 거리였어 이층에서 본 거리 안개만 자욱했어 해묵은 습관처럼 아침이 오고 누군가 올 것 같은 아침이 오고 아무도 찾아오지 않는 이유로 하루는 나른하게 흘러만 가고 구경만 하고 있는 아이가 있고 세상을 살아가는 어른도 있고 안개가 피어나는 그 길가에는 해묵은 그리움이 나를 감싸네 이층에서 본 거리 평온한 거리였어 이층에서 본 거리 안개만 자욱했어

길복순과 감독의 논란거리에 대해

이번에 넷플릭스를 통해 개봉한 영화 [길복순]은 액션을 빙자한 엄마와 딸의 애증을 다루고 있는 영화라고 생각한다. 연기에는 두말할 필요가 없는 전도연, 설경구 두 배우가 투톱으로 나서고 조연급 배우들의 드라마 연기도 나무랄 데 없다. 그런데 액션은 새롭거나 거칠지도 그렇다고 처절하지도 않다. 특히 전도연의 액션은 많이 어색해보였다. 전도연과 설경구의 관계 설정도 충분한 설명이 없다보니 뭔가 어색한 지점이 보여 툭툭 끊어지는 것 같다. 무대장치와 조명도 구리다. 고민없이 전형적인 방식이다보니 금방 지루해진다. 어색한 액션 중간에 끼어드는 뜬금없는 코미디는 (주방장이 자기가 던진 칼에 꽂히는, 쿵후 허슬에서 배낀 듯한) 너무 어색하다. 집안에서 편히 TV를 통해 감상할 수 있으니 그러려니 했지, 극장에서 봤..