묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
12.4 room.find is not a function/room.create is not a function 이 출력됩니다.
몽구스 연결하고, 실행하면, 연결성공 메시지까지 뜨는데, 접속하면 room.find is not a function이 출력됩니다. const Room = require('../schemas/room")을 const {Room}이나 const {Room, roomSchema}로 바꾸는 걸 해봐도 해결되진 않습니다.제 생각으로는 schemas/room 과 controller의 index가 제대로 연결되지 않는것으로 보이는데 어떻게 접근하면 좋을까요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
프론트,백엔드도 https적용되었는데 morgan에는 HTTP통신으로 나옵니다. 쿠키 적용이안됩니다.
백엔드를 npm run start로 했을 시 로그인이 안되는 문제가 있습니다.프론트,백엔드 https적용되어있고 같은 도메인을 쓰고있습니다.app.js에 cookie.secure를 주석처리하면 로그인이 됩니다.질문드린 이유는 지금 제 프론트 <-> 백엔드가 https 통신이 아닌 것인지맞다면 왜 cookie.secure를 true로 했을 때 왜 쿠키가 설정이 안되는 것인지 알고싶습니다. -시도한 방법 -domain에 상위도메인 넣어보았는데도 안됩니다 ㅠ저와 비슷한 상황을 겪은 분의 질문을 보던 중 궁금한 게 있어서 이것도 적어봅니다.https://www.inflearn.com/questions/342672/express-aws-%EB%B0%B0%ED%8F%AC-%ED%9B%84-%EC%84%B8%EC%85%98-%EC%BF%A0%ED%82%A4여기서 cors는 어떻게 하란걸까요? -아래는 제 상황을 파악하시는데 도움이 될만한 내용을 적어봤습니다.- 아래는 프론트에서 login 요청시 morgan 로그입니다.프론트 url입니다 => https가 적용되어있습니다.아래는 백엔드 url을 인터넷주소창에 쳤을 때입니다.아래는 프론트에서 백엔드로 login 요청했을 때 요청헤더입니다. 아래는 백엔드서버 nginx 설정입니다.Route53 호스팅 영역 설정입니다.app으로 시작하는게 백엔드입니다. (CNAME이런건 그림판으로 지웠습니다.)가비아에도 서브도메인으로 등록했습니다.
-
해결됨웹플로우(Webflow) 시작하기 - 코딩 없이 자유도 높은 프로토타입 만들기
CMS Div Block 배경색 설정
위 사진은 화면구성 강의 중에 Category를 CMS로 연결하여 Div Block을 생성하는 과정입니다.이때 각 카테고리 별로 Div block의 배경색을 다 다르게 설정을 어떻게 해야할까요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
트랜잭션의 범위와 준영속 상태
안녕하세요 강의를 수강하다 제가 잘못 이해하고 있는 부분이 있는 것 같아서 질문드리게 되었습니다.다음은 "간단한 주문 조회 V2: 엔티티를 DTO로 변환" 강의에서 35초에 해당하는 화면을 캡처한 부분입니다.orderRepository는 @PersistenceContext 처리된 EntityManager를 가지고 있는데 이 때 Transaction의 범위가 어디까지인지를 잘 모르겠습니다.추측으로는 List<Order> all가 준영속상태로 반환될 것으로 예상했는데 order가 membe프록시 객체를 가지고 있다가 Lazy 강제 초기화가 가능한 것을 보면 영속성 컨텍스트가 여전히 존재하는 상태인 것 같습니다.Transaction의 범위가 어디까지인지 궁금합니다.감사합니다.
-
해결됨실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
제상황을 좀 더 자세히 적겠습니다.
윈도우 환경입니다. C:\terraform\terraform.exe테라폼 파일은 위 폴더에있습니다. 위 사진처럼 해당 폴더에 Terraform 폴더를 만들고해당 폴더에 main.tf 파일을 생성했습니다. main.tf파일내용은provider "aws" { region = "ap-northeast-2"} 입니다. terraform init 명령어를 치면 아래와같은메시지가 나옵니다. C:\terraform>terraform initTerraform initialized in an empty directory!The directory has no Terraform configuration files. You may begin workingwith Terraform immediately by creating Terraform configuration files. 위 내용을 구글링해보면테라폼 프로젝트가 아닌곳에서 커멘드를 치면 위와같은에러가난다고 하는데 테라폼 프로젝트가 해당 디렉토리가 맞습니다..(스크린샷 참조) 어디가 잘못된것일까요편집기에도 인식을 못했는지 색상이 변화가 없습니다(글씨)
-
미해결React + API Server 프로젝트 개발과 배포 (CI/CD)
로컬과 프로덕션 환경에서 동작이 좀 다르네요
binggo.me 라는 도메인으로 작업하는 중인데요, 리액트 라우트는 아래와 같이 작성이 되어있습니다. return ( <BrowserRouter> <Routes> <Route element={<App />}> <Route path="/" element={<Navigate replace={true} to="/home" />} /> <Route path="home" element={<UserHomePage />} /> <Route path="challenge/new" element={<MakeChallengePage />} /> <Route path="bingos/:bingoId" element={<BingoPage />} /> <Route path="challenge/:challengeId" element={<ChallengePage />} /> </Route> <Route path="*" element={<NotFoundPage />} /> </Routes> </BrowserRouter> ); '/'로 접근하면 '/home'로 리디렉션은 잘 되는데, '/home'로 바로 접근할 때 로컬에서는 잘 되고 프로덕션에서는 에러가 뜨네요. 다른 페이지들도 마찬가지로 접근이 안됩니다. 에러 내용은 아래와 같은데NotFoundError: Not Found at /home/ubuntu/local/bingo/bingo/server/app.js:45:8 at Layer.handle [as handle_request] (/home/ubuntu/local/bingo/bingo/server/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/home/ubuntu/local/bingo/bingo/server/node_modules/express/lib/router/index.js:317:13) at /home/ubuntu/local/bingo/bingo/server/node_modules/express/lib/router/index.js:284:7 at Function.process_params (/home/ubuntu/local/bingo/bingo/server/node_modules/express/lib/router/index.js:335:12) at next (/home/ubuntu/local/bingo/bingo/server/node_modules/express/lib/router/index.js:275:10) at SendStream.error (/home/ubuntu/local/bingo/bingo/server/node_modules/serve-static/index.js:121:7) at SendStream.emit (node:events:513:28) at SendStream.error (/home/ubuntu/local/bingo/bingo/server/node_modules/send/index.js:270:17) at SendStream.onStatError (/home/ubuntu/local/bingo/bingo/server/node_modules/send/index.js:421:12)app.js 45번째 라인은 접근할 수 없는 경로에서 404를 뱉게하는 부분인 것 같습니다.app.use(function (req, res, next) { next(createError(404)); });근데 또 db랑 연결해둔 api부분은 잘 접근이 되어요.잘은 모르지만 서버쪽의 app.js파일에서 라우팅을 한 경우에는 잘 되고(/api 경로로 수업때 해주신 것 처럼 라우팅 해뒀습니다), 프론트쪽 작업에서 해둔 라우팅이 로컬에서는 잘 먹고, 프로덕션에서는 안먹고 있는 것 같아요.혹시 이 문제의 해결 방법이 있을까요? 해결하기 위해서 더 필요한 정보가 있으시다면 말씀주시면 감사하겠습니다!
-
해결됨실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
영상을 아무리 찾아봐도
테라폼 폴더 구성하는것은 보이지가않네요강사님의 VS내에 보이는 Terraform 폴더는 어디서 나타난걸까요..
-
해결됨실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
질문입니다
1. 무엇을 하고 싶으신가요? 영상 01:57분에 나오는 Terraform 디렉토리는직접 만드신건가요?제가 직접 만드니 아이콘이 생기지 않습니다. 영상을 계속 하나씩 따라하다가 01:57분에 모르는폴더가 갑자기 생기고 main.tf에 코드를 넣으니 영상처럼 나오지않네요 2. 언제, 어떤 오류가 발생하시나요? 저는 윈도우 환경에서 하고있습니다.terraform.rc 파일내에 plugin_cache_dir = "/Users/incle/AppData/Roaming/terraform.d/plugin_cache"를 셋팅하였습니다. 이후 terraform init 을 명령어에 치면셋팅은 완료되었으나 영상에서럼 폴더가 생성되지 않습니다. 답답하네요 3. 어떤 시도를 해보셨나요? 4. 작성한 코드를 공유해주세요.
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
typeorm 설치하고 설정하는 강의가 어떤건지 알려주세요!
안녕하세요. 제로초님의 강의를 다 들었었는데요.typeorm 설치하고 설정하는 강의가 있었던 것 같은데 어떤 강의인지 알려주실 수 있나요??
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
posts.js 라우터 파일에 문제가 생겼습니다
const express = require('express'); const { User, Post, Image, Comment } = require('../models'); const router = express.Router(); console.log(Post); // undefined router.get('/', async (req, res, next) => { try { const posts = await Post.findAll({ limit: 10, order: [ ['createdAt', 'DESC'], [Comment, 'createdAt', 'DESC'], ], include: [{ model: User, attributes: ['id', 'nickname'], }, { model: Image, }, { model: Comment, include: [{ model: User, attributes: ['id', 'nickname'], }], }, { model: User, as: 'Likers', attributes: ['id'], }], }); res.status(200).json(posts); } catch (error) { console.error(error); next(error); } }); module.exports = router;posts.jsconst express = require('express'); const cors = require('cors'); const passport = require('passport'); const session = require('express-session'); const cookieParser = require('cookie-parser'); const dotenv = require('dotenv'); const morgan = require('morgan'); const db = require('./models'); const passportConfig = require('./passport'); const postRouter = require('./routes/post'); const userRouter = require('./routes/user'); const postsRouter = require('./routes/posts'); dotenv.config(); db.sequelize.sync() .then(() => { console.log('db 연결 성공'); }) .catch(console.error); passportConfig(); const app = express(); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use(cors({ origin: true, credentials: true, })); app.use(cookieParser(process.env.COOKIE_SECRET)); app.use(session({ saveUninitialized: false, resave: false, secret: process.env.COOKIE_SECRET, })); app.use(passport.initialize()); app.use(passport.session()); app.use(morgan('dev')); app.use('/posts', postsRouter); app.use('/post', postRouter); app.use('/user', userRouter); app.listen(3065, () => { console.log('3065포트 서버실행중'); });app.js(node:4192) Warning: Accessing non-existent property 'User' of module exports inside circular dependency (node:4192) Warning: Accessing non-existent property 'Post' of module exports inside circular dependency // 생략영상보면서 코딩중에위 문구와 함께 ../models에서 require한 것이존재하지 않는 문제가 발생했습니다.const { Post } = require('../models')console.log(Post) 출력결과 undefined 입니다이 문제가 posts.js 파일에서만 발생했습니다.(user.js, post.js는 정상)그래서 postss.js 라는 이름이 다르고 코드만 옮긴 파일을 만들어서 다시 시도해보았습니다.(rename시 module not found 에러 발생)그랬더니 ../models에서 require 한것이 존재했습니다.근데 요청시라우터(method: get, url: /posts)의 미들웨어가 실행이 안되는 문제가 있었습니다.상태코드는 300 Multiple Choices 였습니다이번에는 url를 바꿔서 요청을 보냈습니다ex) /posts/test그랬더니 성공했습니다.왜 이런 현상이 발생했는지어떻게 해결할 수 있는지 모르겠어서 질문남깁니다!
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃허브 요청
인프런 아이디 : sjgio0515@naver.com인프런 이메일 : sjgio0515@naver.com깃헙 아이디 : sjgio0515@naver.com깃헙 Username : zioDaydream
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
에러가 발생했는데 뭐가 문제인지 모르겠습니다.
한번만 봐주십시요ㅠ
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
DTO를 Result<T>에 담아서 반환할 때의 제너릭 표기 여부
안녕하세요DTO를 직접 반환하지 않고 Result로 감싸서 반환하는 것을 구현하는 도중 궁금한 점이 생겼습니다. 일단 코드는 다음과 같습니다./** * DTO를 감싸서 반환하는 클래스 * 반환에 성공하면 status에는 "success", data에는 DTO, error에는 null이 담긴다 * 예외가 발생하면 status에는 "fail", data에는 null, error에는 errorCode가 담긴다 */ @NoArgsConstructor @Getter public class Result<T> { private String status; private T data; private ErrorDTO error; public Result(String status, T data, ErrorDTO error) { this.status = status; this.data = data; this.error = error; } } @PostMapping("/save") public ResponseEntity<Result<UserDTO>> save(@RequestBody @Validated UserDTO userDTO, BindingResult bindingResult) { if (bindingResult.hasErrors()) { for (ObjectError error : bindingResult.getAllErrors()) { return ResponseEntity.ok().body(ResultUtils.fail(error.getCode(), error.getDefaultMessage())); } } UserDTO savedUserDTO = userService.save(userDTO); return ResponseEntity.ok().body(ResultUtils.success(savedUserDTO)); }public class ResultUtils { private static final String SUCCESS = "success"; private static final String FAIL = "fail"; public static <T> Result<T> success(T data) { return new Result<>(SUCCESS, data, null); } // 이 메서드의 제너릭 표기도 어떻게 해야할지...? public static Result fail(String errorCode, String message) { return new Result(FAIL, null, new ErrorDTO(errorCode, message)); } } 이렇듯 예외가 발생한 경우에 data에는 null을 담아서 반환하고 싶으면, 예외 발생 여부에 따라 Result<T>의 T가 userDTO이기도 하고 null의 2가지...? 인 느낌이 드는데 그럼 public ResponseEntity<Result<UserDTO>> save처럼 메서드 선언부에서 Result의 제너릭을 표기하는 의미가 있을까요? Result로 적는 것이 좋을지 그래도 userDTO를 명시해 줘야할지가 궁금합니다. 추가로 userDTO 단건일시에는 제너릭이 그다지 복잡하지 않지만 만약 DTO에 페이징 기능을 더하여 반환하고자 한다면 Result<Page<UserDTO>> 처럼 제너릭 안에 제너릭이 있게 될텐데 이러한 경우에도 그냥 제너릭을 생략하는 것이 좋을지 궁금합니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그아웃시 쿠키 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 로그아웃을 하면 개발자 도구에서 네트워크 탭에 헤더에는 Max-Age = 0 이라고 표기가 되는데, 애플리케이션 탭에는 쿠키가 제거되지 않고 Expires에 세션이라고 뜹니다. 크롬 브라우저 설정도 찾아봤는데 해결이 되지 않습니다. 무엇이 문제인가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MemberRepository 싱글톤 객체 생성 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.이전 강의를 들었는데도 이해가 잘 안돼 질문을 남깁니다위의 코드에서 싱글톤을 구현했다는 부분이 잘 이해가 되지 않습니다. 저는MemberRepository 클래스 안에private static final MemberRepository instance = new MemberRepository();라고 선언을 한 뒤에 다른 클래스에서 MemberRepository memberRepository = MemberRepository.getInstance();라고 사용을 한다면 memberRepository 변수와instance 변수는 "같은 객체를 참조"하기 때문에 싱글톤이 된다.라고 이해했습니다.이때, 이해가 안되는 부분이 public class MemberRepository { private static Map<Long,Member> store = new HashMap<>(); private static Long sequence=0L; //싱글톤 구현을 위해 instance를 사용 private static final MemberRepository instance = new MemberRepository(); //getInstance는 MemberRepository를 조회하는 함수. // public static MemberRepository getInstance(){ return instance; } //싱글톤으로 만들 땐, 아무나 생성하지 못하도록 생성자를 private로 설정해서 막아줘야 한다. private MemberRepository(){ }라고 작성한 부분이 어떤 원리로 싱글톤을 보장하게 되는건가요?설명 부탁드립니다항상 친절한 답변 감사합니다.
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@OneToOne(mappedBy)의 쿼리 최적화 방법
안녕하세요!OneToOne(mappedBy = ...)와 관련한 질문을 드립니다.위와 같이 mappedBy로 되어있는 엔티티를 조회하게 되면, LAZY로 설정하여도 반드시 즉시로딩됩니다. 또한, default_batch_fetch_size도 적용되지 않아 반드시 N+1문제가 발생하는 것으로 알고있습니다.여기서 생기는 고민이, 특정 엔티티의 목록을 조회하는 로직을 구현할 때 엔티티를 select절에 넣는것에 대해서 조금 조심스럽습니다. (단건 조회는 즉시로딩이 발생해도 상대적으로 문제의 심각도가 적음)현재 목록을 조회하려는 엔티티에 OneToOne(mappedBy = ..)가 없다면, 엔티티의 목록을 조회해도 N+1 문제와 무관합니다. 하지만, 미래에 추가가 된다면 성능에 문제가 없던 것들도 N+1문제가 생길 수 있습니다.이에 대한 한 가지 해결방법은 Querydsl의 Projection을 사용하는 방법이 있습니다. 이는 결국 select절을 입력해줘야하며 지연로딩과 @BatchSize을 통해 해결하는게 아니기 때문에, 더 복잡한 조인 쿼리를 작성해야할 수도 있습니다. 이로 인해 생산성도 낮아질 수도 있습니다. 정리하자면,select 절에 entity --> 다른 필드를 지연로딩 처리하여 더 쉽게 데이터를 찾지만, 미래에 발생할 수 있는 N+1문제를 어쩔 수 없이 수용한다.select절에 Dto Projection --> 조인 쿼리를 다 작성해야한다. Projection을 기입해야한다. 하지만, @OneToOne(mappedBy)가 추가되어도 쿼리 성능에는 문제가 없다.양쪽의 트레이드 오프가 있는 것 같습니다. 현업에서는 어떠한 방법을 이용하나요? (추가적으로, mappedBy를 이용하지 않거나 하이버네이트에서 제공하는 바이트코드 조작 방법도 있네요)
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
공지사항부분이 왜올라가져서 안보일까요 ?? 뭐가문제일까요 ㅠㅠㅠ???ㅠㅠ
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>c실전연습</title> <link rel="stylesheet" href="css/c.css"> </head> <div class="container"> <div class="left"> <header> <div class="header-logo"> <a href="#none"><img src="images/header-logo.png" alt="header-logo"></a> </div> <div class="navi"> <ul class="menu"> <li> <a href="#none">축제소개</a> <div class="sub-menu"> <a href="#none">초대의 글</a> <a href="#none">축제개요</a> <a href="#none">축제연혁</a> <a href="#none">오시는길</a> </div> </li> <li> <a href="#none">행사안내</a> <div class="sub-menu"> <a href="#none">셔틀버스안내</a> <a href="#none">행사안내</a> <a href="#none">행사일정</a> <a href="#none">소공연장</a> </div> </li> <li> <a href="#none">홍보마당</a> <div class="sub-menu"> <a href="#none">축제소식</a> <a href="#none">보도자료</a> <a href="#none">음식레시피</a> </div> </li> <li> <a href="#none">참여마당</a> <div class="sub-menu"> <a href="#none">참가후기</a> <a href="#none">연꽃갤러리</a> <a href="#none">포토갤러리</a> </div> </li> </ul> </div> </header> </div> <div class="right"> <div class="slide"> <div> <a href="#none"><img src="images/slider01-c.jpg" alt="slider01"></a> <a href="#none"><img src="images/slider02-c.jpg" alt="slider02"></a> <a href="#none"><img src="images/slider03-c.jpg" alt="slider03"></a> </div> </div> <div class="items"> <div class="news"> <div class="tab-inner"> <div class="btn"> <span>공지사항</span> </div> <div class="tab1"> <a href="#none"> 운영위원장 후보자 추천을 받고 있습니다. <b>2020.01.09</b></a> </div> </div> </div> <div class="gallery"></div> <div class="shortcut"> <a href="#none"><img src="images/shortcut-c.jpg" alt=""></a> </div> </div> <footer> <div class="copyright"> 상호 : (주)이스타컴퍼니 | 대표자 : 최종윤 | 개인정보관리책임자 : 이주현 부장 <br> 사업장주소 : 인천광역시 중구 개항로 6층 (주)이스타컴퍼니 </div> <div class="sns"> <div> <a href="#none"><img src="images/sns1.png" alt="facebook"></a> <a href="#none"><img src="images/sns2.png" alt="tiwtter"></a> <a href="#none"><img src="images/sns3.png" alt="instagram"></a> </div> <div> <select> <option value="">familysite</option> <option value="">여주군청 홈페이지</option> <option value="">한국관광공사</option> <option value="">여행자보험가입</option> </select> </div> </div> </footer> </div> </div> <body> <script src="js/jquery-1.12.4.js"></script> <script src="js/custom.js"></script> </body> </html> @charset "UTF-8"; body{ margin: 0; background-color: #fff; color: #333333; } a{ list-style: none; color: #333333; } .container{ width: 1000px; border: 1px solid #000; display: flex; } .container > div{ } .left{ width: 200px; } .right{ width: 800px; } header{} header > div{ } .header-logo{ height: 100px; line-height: 130px; } .navi{ height: 400px; } .slide{} .slide > div{ border: 1px solid #000; height: 350px; } .items{ display: flex; } .items > div{ height: 200px; border: 1px solid #000; } .news{ width: 300px; } .gallery{ width: 300px; } .shortcut{ width: 200px; } footer{ display: flex; } footer > div{ height: 100px; text-align: center; } .copyright{ width: 800px; padding-top: 30px; box-sizing: border-box; text-align: center; } .sns{ width: 200px; } .sns div{ height: 50px; box-sizing: border-box; } .sns div:nth-child(1){ padding-top: 15px; } .sns div:nth-child(2){ padding-top: 10px; box-sizing: border-box; } /*slide*/ .slide{ position: relative; width: 800px; height: 300px; } .slide >div{ } .slide >div a{ font-size: 0; width: 2400px; position: absolute; top: 0; left: 0; animation: slide 10s linear infinite; visibility: hidden; } .slide >div a:nth-child(1){ animation-delay: 0s; } .slide >div a:nth-child(2){ animation-delay: 3.5s; } .slide >div a:nth-child(3){ animation-delay: 7s; } @keyframes slide{ 0%{ opacity: 0; } 5%{ opacity: 1; visibility: visible; } 35%{ opacity: 1; } 40%{ opacity: 0; } 100%{ opacity: 0; } } /*navigation*/ .menu{ list-style: none; padding: 0; width: 90%; margin: auto; position: relative; } .menu li{ padding: 2px; text-align: center; } .menu li > a{ display: block; border: 1px solid #000; padding: 4px; text-decoration: none; transition: 0.5s; } .menu li:hover > a{ background-color: #000; color: #fff; } .sub-menu{ display: none; border: 1px solid #000; } .sub-menu a{ display: block; text-decoration: none; padding: 5px; transition: 0.5s; } .sub-menu a:hover{ background-color: #000; color: #fff; }사진처럼 공지사항부분이 위에서 슬라이더에 가렸는데 뭐때문에 가린건지요 ,,, 크기값이안맞아서 그런지 display:flex 를 써서 영향이 있는지 뭐때문에 그런지 궁금합니다 !ㅜ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
간단한 private 사용 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]접근 제어자 private를 사용하는 이유는해당 클래스의 내부에서만 사용할 수 있도록 하는 것으로 알고 있습니다.하지만 Member 클래스는 접근 제어자가 public이기 때문에Member 인스턴스 객체를 만들면 각 객체의 id,username,age에는 접근할 수 있는 것으로 이해하고 있는데요이때, id,username,age 등의 변수를 private로 사용하는 이유는Member 객체의 id,username,age 등의 변수에 접근해서 "조회"는 가능하게 하고 , "수정"은 불가능하게 하기 위함이다.아니면private를 사용한 이유는 메소드를 통한 간접 접근(데이터 조회, 수정 둘 다 가능)을 하게 함으로써, 데이터 보호를 목적으로 하는 것인가요?어떻게 이해하면 옳게 이해한 것인가요?항상 친절한 답변 감사합니다.
-
해결됨실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}
Recording Rules에 label matcher 활용하기
안녕하세요. 강의 잘 듣고 있습니다!혹시 Recording Rules에 label matcher를 동적으로 사용하는 방법도 있을까요?(실무에 적용하려면 필요한 방법 같아 질문드립니다.)label에 대한 value들이 매우 많은 상황이라면 expr은 거의 동일하기 때문에 여러 rule를 생성하는 것은 옳지 않은 것 같습니다.예를들어 아래와 같은 방식입니다.record : container:memory_working_set:topk3{pod=~"$pod"}expr : topk(3, sum(container_memory_working_set_bytes{pod=~"$pod"}/1024/1024) by (pod))
-
해결됨실전! Querydsl
컨트롤러의 파라미터로 Pageable를 직접 받을까요 혹은 page, size, sort등을 따로 받을까요?
안녕하세요!컨트롤러의 파라미터로 Pageable을 직접 받을 수 있으나 @PageableDefault로는 1가지 기준으로만 정렬이 가능한 것 같은 제약사항이 있는 것으로 알고 있습니다.@SortDefault로 여러개의 정렬 조건을 추가할 수 있다고는 하나 파라미터에 어노테이션이 너무 많아지나..? 싶기도 합니다.또 만약 page라는 변수명이아니라 pageNo처럼 다른 변수명을 사용할 때의 유연성을 위해서라도 Pageable 인터페이스로 직접 받기보다는 페이징의 각 요소를 받아서 PageRequest 객체를 따로 생성하는 것이 더 나을까요?토이프로젝트보다 훨씬 복잡한 상황의 현업환경에서는 어떤 방식이 더 자주 사용되는지 궁금합니다!