설정파일을 편집기로 열고 max_connections의 수치를 늘려준다.

[root@localhost data]# pwd
/var/lib/pgsql/16/data

[root@localhost data]# ll
합계 68
-rw-------. 1 postgres postgres     3  7월 30 14:13 PG_VERSION
drwx------. 5 postgres postgres    33  7월 30 14:13 base
-rw-------. 1 postgres postgres    30  7월 30 14:20 current_logfiles
drwx------. 2 postgres postgres  4096  7월 30 14:21 global
drwx------. 2 postgres postgres    32  7월 30 14:14 log
drwx------. 2 postgres postgres     6  7월 30 14:13 pg_commit_ts
drwx------. 2 postgres postgres     6  7월 30 14:13 pg_dynshmem
-rw-------. 1 postgres postgres  5527  7월 30 14:20 pg_hba.conf
-rw-------. 1 postgres postgres  2640  7월 30 14:13 pg_ident.conf
drwx------. 4 postgres postgres    68  7월 30 14:25 pg_logical
drwx------. 4 postgres postgres    36  7월 30 14:13 pg_multixact
drwx------. 2 postgres postgres     6  7월 30 14:13 pg_notify
drwx------. 2 postgres postgres     6  7월 30 14:13 pg_replslot
drwx------. 2 postgres postgres     6  7월 30 14:13 pg_serial
drwx------. 2 postgres postgres     6  7월 30 14:13 pg_snapshots
drwx------. 2 postgres postgres     6  7월 30 14:20 pg_stat
drwx------. 2 postgres postgres     6  7월 30 14:13 pg_stat_tmp
drwx------. 2 postgres postgres    18  7월 30 14:13 pg_subtrans
drwx------. 2 postgres postgres     6  7월 30 14:13 pg_tblspc
drwx------. 2 postgres postgres     6  7월 30 14:13 pg_twophase
drwx------. 3 postgres postgres    60  7월 30 14:13 pg_wal
drwx------. 2 postgres postgres    18  7월 30 14:13 pg_xact
-rw-------. 1 postgres postgres    88  7월 30 14:13 postgresql.auto.conf
-rw-------. 1 postgres postgres 29683  7월 30 14:16 postgresql.conf
-rw-------. 1 postgres postgres    58  7월 30 14:20 postmaster.opts
-rw-------. 1 postgres postgres    92  7월 30 14:20 postmaster.pid

[root@localhost data]# vi postgresql.conf

 

해당 항목 100 -> 1000 변경

 max_connections = 1000

 * 꿀팁!

vi 편집기에서 ESC누르고 /치고 원하는 글자 입력하고 엔터치면 검색됨

 

 

재시작 필수

[postgres@localhost data]$ systemctl stop postgresql-16.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
'postgresql-16.service' 서비스 유닛을 멈추려면 인증이 필요합니다.
Authenticating as: jmpark
Password:
==== AUTHENTICATION COMPLETE ====
[postgres@localhost data]$ systemctl start postgresql-16.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
'postgresql-16.service' 서비스 유닛을 시작하려면 인증이 필요합니다.
Authenticating as: jmpark
Password:
==== AUTHENTICATION COMPLETE ====
[postgres@localhost data]$ systemctl status postgresql-16.service
● postgresql-16.service - PostgreSQL 16 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-16.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2024-07-31 22:10:03 EDT; 6s ago
     Docs: https://www.postgresql.org/docs/16/static/
  Process: 22720 ExecStartPre=/usr/pgsql-16/bin/postgresql-16-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 22725 (postgres)
    Tasks: 7 (limit: 22875)
   Memory: 46.2M
   CGroup: /system.slice/postgresql-16.service
           ├─22725 /usr/pgsql-16/bin/postgres -D /var/lib/pgsql/16/data/
           ├─22727 postgres: logger
           ├─22728 postgres: checkpointer
           ├─22729 postgres: background writer
           ├─22731 postgres: walwriter
           ├─22732 postgres: autovacuum launcher
           └─22733 postgres: logical replication launcher

psql postgrespsql 접속하려는데 

root" 롤(role) 없음 오류가 나오면 이렇게 해결하면 됨

 

root 사용자에서 postgres 사용자로 변경 후 다시 시도

[root@localhost ~]# psql postgres
psql: 오류: "/run/postgresql/.s.PGSQL.5432" 소켓으로 서버 접속 할 수 없음: 치명적오류:  "root" 롤(role) 없음
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# su - postgres
[postgres@localhost ~]$ psql postgres
psql (16.3)
도움말을 보려면 "help"를 입력하십시오.

postgres=#

build.gradle의 dependencies에 다음 코드를 추가해주고 reload 시켜주면 

//JUnit4 추가
testImplementation("org.junit.vintage:junit-vintage-engine") {
    exclude group: "org.hamcrest", module: "hamcrest-core"
}

 

import org.junit.runner.RunWith;

import문이 잘 먹힌다. 해결!

 

참고로 junit5는 @RunWith(SpringRunner.class)이 아닌 @ExtendWith(SpringExtension.class)를 사용한다고 한다.

 

 


참고한 블로그

: https://velog.io/@hyeon030/Junit5-RunWithSpringRunner.class

 

오류 상황

Thymeleaf를 이용해 view를 구현하고 있는데 th:object에 객체가 담기지 않는 오류가 발생했다.

컨트롤러에서 메서드를 어떻게 만져도 해결되지 않았다. 

 

해결 방법

상단의 타임리프 라이브러리 추가하는 부분에 www.를 제거하면 된다.

변경 전

<html xmlns:th="http://www.thymeleaf.org">

변경 후

<html xmlns:th="http://thymeleaf.org">

말끔히 해결..ㅎ

코드 오류가 아닌 라이브러리 주소 참조 오류였다..

이렇게 배우는 것 없는 오류 잡는게 제일 허무한 것 같다.

그래도 이런 라이브러리 참조에서도 오류가 날 수 있다는 점을 깨달았다.

다음에 같은 오류를 만나게 되면 더 빨리 오류를 해결할 수 있을 것 같다!

4~5시간은 이 오류를 해결하는데 시간 투자를 한거 같다..  아무튼 오류 잡았으니 해^ㅡㅡ^피!

 


출처 : https://stackoverflow.com/questions/38710585/spring-boot-thymeleaf-in-intellij-cannot-resolve-vars

이번에 만난 오류는..

웹페이지로 test를 해보려 Swagger 접속주소(http://localhost:[사용포트번호]/swagger-ui.html)에 접근했는데 

코드에도 문제가 없고, 심지어 콘솔에서도 오류가 없는데 안열리는 경우였다.

 

 

그럴 때는 코드 상의 오류가 아니라 설정 파일이 잘못 되었다는 것인데 

swagger를 사용하기 위해서는 

1. pom.xml에 의존성을 추가해야 한다.

	<!-- Swagger2 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

 

2. SwaggerConfiguration 파일을 만들어주어야 한다.

SwaggerConfiguration

package com.springboot.valid_exception.config.annotation;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/** Swagger 환경 설정 **/

@Configuration // 환경(설정)에 관한 일을 함
@EnableSwagger2 // swagger를 활성화 시키겠습니다(enable)
public class SwaggerConfiguration {
    @Bean
    public Docket api() {

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.springboot.valid_exception")) 
                // 어디부터 어디까지 component-scan 역할
                .paths(PathSelectors.any())
                .build();
    }

    /** ui에 뿌려주는 부분 **/
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Spring Boot Open API Test with Swagger")
                .description("설명")
                .version("1.0.0")
                .build();
    }
}

 

그리고 특히나 여기 주의할 점은

Config파일 특성한 이전 프로젝트나 따로 정리해둔 코드를 그대로 사용하는 경우가 많은데

basePackage에서 설정한 패키지를 test하는 데 사용하므로 현재 사용 중인 프로젝트로 설정되어 있는지 꼭 확인하자!

 

필자는 이 부분이 문제였다..ㅎ

문제의 오류 메세지

 

해결 방법

괄호 개수 확인해보세요 

{}} []] ()) 이런 식으로 되어있을 가능성 매우 다분함

+ Recent posts