묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
Load Balancer 중복 여부 질문
섹션 3 의 [Loadbalancer 생성해서 VM 연결해주기] 강의에서 AWS 의 LoadBalancer 를 앞 단에 연결해 주신 상태인데요.섹션 5 의 [Process manager - 여러 프로세스를 뛰우고 load balancing 해주기] 강의에서는 pm2 를 이용해 또 LoadBalancer 를 생성해 주시고 있습니다.Load Balancer 를 2개를 생성하는 것인가요?
-
해결됨Next + React Query로 SNS 서비스 만들기
fetch와 axios 차이점이 문득 궁금해졌습니다.
next.js에서의 fetch는 fetch api와 다른 것과, cache: 'no-store'를 사용하면 getServerSideProps를 사용한 것과 동일한 것도 이해를 했습니다. 근데 만약 fetch를 사용하지 않고 axios를 사용한다면 어떤 차이점이 있는지 궁금합니다.질문 : axios를 사용하면 next.js에서 어떻게 SSR 처리가 되는 걸까요? (next.js fetch를 쓰지 않는데 어떻게 SSR이 처리가 되는지)
-
미해결CloudNet@ - Amazon EKS 기본 강의
EKS Add on 기능
안녕하세요 kube-proxy와 Amazon VPC CNI core DNS경우는 일반적으로 Kubernetes에 구성 요소 아닌지요? 그런데 왜 EKS에서 add on 으로 나와 있는건지 궁금합니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
nginx, gunicorn, daphne 기반 배포 관련하여 질문 좀 드릴게요
안녕하세요~현재까지 공개된 강의 내용과 무관한 질문이지만, 도통 문제 해결 방향을 잡지 못하고 있어 글 남겨 봅니다. ><DRF, Channels, React로 만든 앱을 nginx, gunicorn, daphne 기반으로 배포하려는데, 막힌 지점에서 벗어나질 못하고 있습니다 ㅜnginx, gunicorn, daphne 모두 정상적으로 동작하고 있는 것 같은데, nginx 설정 파일에 등록한 127.0.0.1로 접속하면 "사이트에 연결할 수 없음, 127.0.0.1에서 연결을 거부했습니다"라는 화면이 나옵니다.문제 해결을 위해 추가적으로 살펴봐야 부분에 관해 조언을 해주신다면 너무 감사드리겠습니다!한 가지 찝찝한 부분은, react오 django 프로젝트 폴더를 담고 있는 폴더의 경로는 home/kiwitter인데 home/ubuntu/kiwitter/처럼 현재 제 우분투 환경의 사용자를 중간에 추가해야 진행 시 오류가 발생하지 않더라고요. 가상환경 사용과 관련있는 것 같은데, 어쨌든 그래서 경로 입력 시 home/ubuntu/kiwitter/처럼 중간에 사용자명을 추가하는 방식을 사용하고 있는데, 혹시 지금 문제가 이것과 관련이 있을까 싶어 말씀드립니다.배포 시 React와 Django 프로젝트가 정상적으로 동작하는지 각각 따로 확인하는 방법이 있을까요? Django도 지금처럼 http와 웹소켓으로 클라이언트 요청이 들어오는 경우에 각각의 동작 여부를 개별적으로 살펴볼 수 있는 방법이 있나요? 배포 관련 지식이 없는 데다 하나씩 단계적으로 정상 동작 여부를 점검하지도 못하니 배포의 늪에서 벗어나는 게 더 힘드네요,,파이썬 사랑방에는 모든 게시물이 관리자의 승인을 받아야 되나요? 아니면 가령 일정 등급 이상이 되면 승인 없이 게시물을 자유롭게 올릴 수 있나요? 여기서 질문 드린 부분을 처음에는 페북 파이썬 사랑방 그룹에 질문했었는데 관리자의 검토가 필요하다는 안내를 보고 궁금해서 여쭤봅니다. ✔ 프로젝트 폴더 구조(venv) ubuntu@Ubuntu:~/kiwitter$ ├── kiwitter_backend │ ├── chats │ ├── db.sqlite3 │ ├── kiwitter_backend │ ├── kiwitter.sock │ ├── log │ ├── manage.py │ ├── secrets.json │ ├── staticfiles │ ├── tweets │ └── users ├── kiwitter_frontend │ ├── build │ ├── node_modules │ ├── package.json │ ├── package-lock.json │ ├── public │ ├── README.md │ └── src ├── requirements.txt └── venv ├── bin ├── include ├── lib ├── lib64 -> lib └── pyvenv.cfg ✔ nginx, gunicorn, daphne 동작 상태<sudo systemctl status nginx 명령어 출력 결과><ps aux | grep gunicorn의 출력 결과><ps aux | grep daphne의 출력 결과>✔ nginx, gunicorn, daphne 관련 설정 파일</etc/nginx/sites-available/kiwitter>upstream django_server { server unix:/home/ubuntu/kiwitter/kiwitter_backend/kiwitter.sock; # Gunicorn 소켓 파일 위치 } upstream channels_layer { server localhost:6379; # Daphne 서버 주소 및 포트 } server { listen 80; server_name 127.0.0.1; # 실제 도메인 또는 공용 IP 주소로 변경 # React 앱이 위치한 경로 location / { root /home/ubuntu/kiwitter/kiwitter_frontend/build/; try_files $uri $uri/ /index.html; } location = /favicon.ico { access_log off; log_not_found off; } location /static/ { alias /home/ubuntu/kiwitter/kiwitter_backend/staticfiles/; # STATIC_ROOT 경로 } location /media/ { alias /home/ubuntu/kiwitter/kiwitter_backend/media/; # MEDIA_ROOT 경로 } # API 요청을 Django로 프록시 location /api/ { proxy_pass http://django_server; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # Django admin 페이지 및 기타 Django 경로 location /admin/ { proxy_pass http://django_server; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # WebSocket 요청 처리를 위한 설정 location /ws/ { proxy_pass http://channels_layer; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }</etc/systemd/system/gunicorn.service>[Unit] Description=gunicorn daemon After=network.target [Service] User=ubuntu Group=www-data WorkingDirectory=/home/ubuntu/kiwitter/kiwitter_backend ExecStart=/home/ubuntu/kiwitter/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/ubuntu/kiwitter/kiwitter_backend/kiwitter.sock kiwitter_backend.wsgi:application [Install] WantedBy=multi-user.target</etc/supervisor/conf.d/channels.conf>[fcgi-program:asgi] socket=tcp://localhost:8000 directory=/home/ubuntu/kiwitter/kiwitter_backend command=/home/ubuntu/kiwitter/venv/bin/daphne -u /run/daphne/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers kiwitter_backend.asgi:application numprocs=2 process_name=asgi%(process_num)d autostart=true autorestart=true stdout_logfile=/home/ubuntu/kiwitter/kiwitter_backend/log/asgi.log redirect_stderr=true✔ Django settings.py... 생략 ALLOWED_HOSTS = os.getenv('ALLOWED_HOSTS', '').split(',') # .env 관련 부분 -> ALLOWED_HOSTS=127.0.0.1,localhost ... 생략 CSRF_TRUSTED_ORIGINS = [ 'http://127.0.0.1:8000', 'http://127.0.0.1', 'http://localhost:8000', 'http://localhost', ] ... 생략 CHANNEL_LAYERS = { 'default': { 'BACKEND': 'channels_redis.core.RedisChannelLayer', 'CONFIG': { "hosts": [('127.0.0.1', 6379)], # Redis 서버 주소 }, }, }
-
해결됨핸즈온 리액트 네이티브
실물 기기로 개발 시 안드로이드 스튜디오는 필요가 없는건가요?
안녕하세요, 개발환경 구성할 때 안드로이드 스튜디오를 같이 설치를 했는데요.만약 실물 기기를 이용하여 개발을 할 때는 안드로이드 스튜디오를 따로 설치해주지 않아도 상관이 없는걸까요?
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
영상 중에 intercept redirect 질문
안녕하세요! 진석님 강의 잘듣고 있습니다.intercept redirect 강의 파트에서 도중에 끊긴 것 같은데 다음 회차에서 이어지는건가요? 확인 부탁드립니다!늘 좋은 강의 감사합니다:)
-
해결됨시스템 소프트웨어 개발의 모든 것 - 시스템 반도체와 전기 자동차 중심
절실한 강의자료 ㅜㅜ...
안녕하세요.로드맵을 따라 수강하기 위해 강의들을 모두 구해하였는데요.강사님께서 설명하시는 자료가 있어야 공부 및 복습을 제대로 할 수 있을 것 같은데 강의하시는 pdf 자료를 공유해주실 수는 없는지 여쭤봅니다. ㅠㅠ 부탁드립니다. ㅜㅜ
-
미해결Next + React Query로 SNS 서비스 만들기
credentials provider 에서 서버로 부터 받아온 error message가 반환되지 않는 경우
안녕하세요 제로초님!강의 들으면서 개인 프로젝트에 적용 중입니다!현재 로그인 기능 구현을 시도하고 있고, 백엔드 API는 개인적으로 이미 구현이 되어있는 상황입니다.로그인 구현 방식은 강의 내용과 동일하게 진행하고 있는데요,아이디 또는 비밀번호가 틀렸을 때 authResponse.ok가 false로 반환되어 아래처럼 에러를 던져주고 있는데, 이 에러의 에러메시지가 터미널에서는 확인이 됩니다.근데 저 에러 메시지를 로그인을 요청하는(onSubmit 함수가 있는) 클라이언트 컴포넌트에서 확인을 하고 싶은데 next-auth signIn 요청시에 error로 잡히지 않고 res(정상응답)으로만 반환이 되고 있습니다.그리고 그 res를 콘솔에 찍어보면{error: 'CallbackRouteError', status: 200, ok: true, url: null} 로만 반환이 됩니다. 로그인이 정상적으로 이루어졌을 때는{error: null, status: 200, ok: true, url: 'http://localhost:3000/login'} 이렇게 반환이 됩니다.next-auth에서 Import해온 signIn 함수의 response 와 서버에서 받아온 errorMessage를 어디서 핸들링해야하는 건지 궁금하여 질문 드립니다.. 터미널에서 찍히는 errorMessage를 동일하게 signIn 함수의 error로 잡고 싶은데 가능한가요?
-
해결됨홍정모의 따라하며 배우는 C언어
* (asterisk) 가 초기화문에서 사용될때, 할당문에서 사용될때 차이.
안녕하세요,초기화문에서 *가 사용될땐 주소가 저장되고,일반 명령문에서 변수앞에 *를 붙이면 앞의 경우와 다르게 redirection 연산자로서 사용되는데 그냥 암기해야 되나요? 간단한 예를 들면, int *a = 0x0077*a = 123;위 두 문장의 의미는 각각 int 포인터 변수 a 를 선언하며 0x0077 이라는 주소값을 a 에 저장. a가 가리키는 주소(0x0077)에 접근하여 123을 저장. 감사합니다.
-
미해결UIKit - iOS14 실무 가이드 <iOS앱 진짜 개발자 되기>
pageViewController 호출시점
강의에서 매개변수로 viewControllerBefore viewController 이나 viewControllerAfter viewController 를 가지고 있는 pageViewController함수를 이용해 현재 페이지의 idx 를 구할 수 있다고 들었는데, 언제 호출되는지 궁금해서 각각 함수에 아래의 디버깅 코드를 넣어서 테스트 해봤습니다print("before pageViewController 호출")print("after pageViewController 호출")결과는 오른쪽 페이지로 갈때는 after 이 출력되었고 왼쪽페이지로 갈때는 before 이 출력되었는데 매번 나오는건 아니고 나올때도 있고 안 나올때도 있더라고요..왜 이렇게 매번 호출이 되었다가 안되었다가 하는 것일까요?페이지에 따른 규칙성일까 싶어 확인해봤으나 랜덤으로 나왔다가 안 나왔다가 하는 것 같았습니다. extension OnBoardingPageViewController: UIPageViewControllerDataSource { func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? { print("before pageViewController 호출") guard let currentIdx = pages.firstIndex(of: viewController) else { return nil } self.currentIdx = currentIdx //마지막 페이지일 경우 마지막 페이지로 if (currentIdx == 0 ) { return pages.last } return pages[currentIdx-1] } func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? { print("after pageViewController 호출") guard let currentIdx = pages.firstIndex(of: viewController) else { return nil } self.currentIdx = currentIdx if currentIdx == pages.count - 1 { return pages.first } return pages[currentIdx + 1] } }
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
xml파일과 properties에 로그레벨 질문
<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n</pattern> </encoder> </appender> <root level="DEBUG"> <appender-ref ref="STDOUT" /> </root> </configuration>이 코드를 쓰면 DataSource 커넥션풀에서 별도의 Thread가 동작하는 코드를 볼수가 있는데 application.properties에서 logging.level.root=debug 로 설정을하니까 안보이더라구요... 왜 안되는지 이유를 알수잇을까요?
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
13강 void UABCharacterMovementComponent::ABTeleport() 구현에서 문제가 있습니다.
강의 코드와 같이 작성했으나 CharacterOwner에 멤버함수에 대해 접근이 안됩니다.//.h FIle class ARENABATTLE_API UABCharacterMovementComponent : public UCharacterMovementComponent 분명 UCharacterMovementComponent 클래스를 상속받았고 UCharacterMovementComponent 클래스안에 ACharater에대한 선언도 있는듯 한데CharacterOwner포인터가 incompleted class라고 하면서 클래스 내부에 대해 접근을 하지못하네요..ㅠㅠFVector TargetLocation = CharacterOwner->GetActorLocation() + CharacterOwner->GetActorForwardVector() * TeleportOffset;#include "GameFramework/Character.h"우선 해당 클래스를 cpp에 포함시켜서 해결은 했는데 저만발생하는거같아 이상하네요 더좋은 방법이 있을까요?? 아래는 에러코드들입니다.error C2027: use of undefined type 'ACharacter'error C2039: 'GetActorLocation': is not a member of 'TObjectPtr<ACharacter>error C2027: use of undefined type 'ACharacter'
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
프록시 관련 질문입니다...
안녕하세요 질문드리고 싶은 것이 있어 글을 남기게 되었습니다. v1에서 Order 와 Member 가 지연로딩으로 되어 있기 때문에 실제 엔티티 대신 프록시가 존재하고, jackson 라이브러리는 프록시 객체를 json 으로 어떻게 생성하는지 모르기 때문에 Hibernate5JakartaModule 을 스프링 빈으로 등록한다고 이해했습니다. 그리고 v2 를 실행할 때 Hibernate5JakartaModule 을 제거하고 실행했을 때 정상적으로 응답되는 것을 확인했습니다. 그래서 제가 이해한 바로는 Entity 를 직접 반환하는 v1 의 경우에는 지연로딩 때문에 프록시 객체가 존재하고, 이를 jackson 라이브러리가 읽을 수 없어 Hibernate5JakartaModule 을 추가했지만, v2 의 경우에는 Entity 를 직접 반환하는 것이 아닌 DTO 를 반환하기 때문에 지연로딩으로 인한 프록시 객체가 있어도 DTO는 jackson 라이브러리가 읽을 수 있는 객체이기 때문에 제거해도 정상적으로 동작한다고 이해했습니다. 혹시 제가 이해한 것이 맞는지 궁금합니다....ㅠㅠ 항상 잘 듣고 있습니다. 감사합니다
-
해결됨QGIS 파이썬 자동화 (벡터편) Ver.2
qgis에서 오차범위 내의 객체만 속성 결합을 할 수 있나요?
qgis에서 차량의 주행데이터(point)와 표준노드링크의 링크(line)의 필드 속성을 결합시키고자 합니다.그런데 차량데이터의 heading 값과 링크의 heading값을 오차 범위 내에서 고려하여,차량데이터 필드에 오차 범위 내의 가장 가까운 링크 아이디를 넣는 것이 목표입니다.그래서 heading값의 오차범위가 조건이 되어서 속성을 결합하는 것이 필요할 것 같은데혹시 방법을 아시나요...? 공간 처리 툴박스를 이용하고 싶은데 '최근접 거리를 이용하여 속성을 결합' 과 같이 위치적인 것만 고려하는 기능만 보여서요 ㅠㅠ표현식이나 파이썬이나 플러그인이나 혹시 방법이 있을까요..?
-
해결됨
쿼리DSL 연관관계 JOIN하여 DTO로 조회하기
안녕하세요 영한님의 강의를 맹신하는 대학생 개발자입니다!다름이 아니라 플랫폼을 개발하고 있는데 연관관계가 포함된 People과 PeopleProfile 사이에서 join을 통해 값을 가져오려고 합니다. PeopleEntity@Getter @Entity @Table(name = "people") @NoArgsConstructor(access = AccessLevel.PROTECTED) public class People extends BaseTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "people_id") private Long peopleId; @Column(name = "nickname") private String nickname; @Column(name = "email") private String email; @Column(name = "phone_number") private String phoneNumber; @Enumerated(EnumType.STRING) @Column(name = "people_type") private PeopleType peopleType; @Column(name = "profile_image_uri") private String profileImageUri; @Column(name = "account_number") private String accountNumber; @OneToOne(cascade = CascadeType.REMOVE) private Member member; @OneToOne(mappedBy = "people") private PeopleProfile peopleProfile; ... } PeopleProfile@Entity @Getter @Table(name = "people_profile") @NoArgsConstructor(access = AccessLevel.PROTECTED) public class PeopleProfile { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "people_profile_id") private Long peopleProfileId; @Column(name = "introduction") private String introduction; @Column(name = "activity_area") private String activityArea; @Column(name = "education") private String education; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "people_id") private People people; @ElementCollection @CollectionTable(name = "people_hashtags", joinColumns = @JoinColumn(name = "people_profile_id")) @Column(name = "hashtags_id") private List<Hashtag> hashtags = new ArrayList<>(); ... } Hashtag@Embeddable @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Hashtag { @Column(name = "hashtag") private String value; private Hashtag(String value) { this.value = validate(value); } private String validate(String value) { return value; } public static Hashtag from(String value) { return new Hashtag(value); } }hashtag는 값 타입으로 구현했습니다. PeopleDTO@Getter public class CardPeopleResponse { @NotNull private Long peopleId; @NotNull private String nickname; @NotNull private String peopleType; @NotNull private String profileImageUri; @Valid private CardPeopleProfileResponse profile; @QueryProjection public CardPeopleResponse(final Long peopleId, final String nickname, final People Type peopleType, final String profileImageUri, @Valid CardPeopleProfileResponse profile) { this.peopleId = peopleId; this.nickname = nickname; this.peopleType = peopleType.name(); this.profileImageUri = profileImageUri; this.profile = profile; } }PeopleProfileDTO@Getter public class CardPeopleProfileResponse { @NotNull private final String activityArea; @NotNull private final List<String> hashtags; @NotNull private final Integer completedProjectsCount; @NotNull private final Integer interestsCount; @QueryProjection public CardPeopleProfileResponse(final String activityArea, final List<Hashtag> hashtags, final Integer completedProjectsCount, final Integer interestsCount) { this.activityArea = activityArea; this.hashtags = hashtags.stream().map(Hashtag::getValue).toList(); this.completedProjectsCount = completedProjectsCount; this.interestsCount = interestsCount; } } 쿼리DSLprivate List<CardPeopleResponse> getCardPeopleContent(Pageable pageable) { return queryFactory .select(new QCardPeopleResponse( people.peopleId, people.nickname, people.peopleType, people.profileImageUri, new QCardPeopleProfileResponse( peopleProfile.activityArea, peopleProfile.hashtags, Expressions.constant(0), Expressions.constant(0) ) )) .from(people) .join(people.peopleProfile, peopleProfile) .orderBy(getPeopleOrderSpecifiers(pageable.getSort())) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .fetch(); } completedProjectsCount와 interestsCount는 추후 개발 예정이므로 Expressions.constant(0)으로 대체 해뒀습니다. 위와 같이 서버를 구현하였을때, 서버 구동은 문제 없이 됩니다. 문제점2024-02-22T16:44:50.163+09:00 DEBUG 3487851 --- [io-52003-exec-1] org.hibernate.SQL : select p1_0.people_id, p1_0.nickname, p1_0.people_type, p1_0.profile_image_uri, p2_0.activity_area, h1_0.hashtag from people p1_0 join people_profile p2_0 on p1_0.people_id=p2_0.people_id join people_hashtags h1_0 on p2_0.people_profile_id=h1_0.people_profile_id order by p1_0.people_id desc offset ? rows fetch first ? rows only 2024-02-22T16:44:50.274+09:00 ERROR 3487851 --- [io-52003-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.dao.InvalidDataAccessApiUsageException: argument type mismatch] with root cause java.lang.IllegalArgumentException: argument type mismatch at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na] at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[na:na] at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[na:na] at com.querydsl.core.types.ConstructorExpression.newInstance(ConstructorExpression.java:144) ~[querydsl-core-5.0.0.jar!/:na] at com.querydsl.core.types.FactoryExpressionUtils.compress(FactoryExpressionUtils.java:155) ~[querydsl-core-5.0.0.jar!/:na] at com.querydsl.core.types.FactoryExpressionUtils.access$100(FactoryExpressionUtils.java:28) ~[querydsl-core-5.0.0.jar!/:na] at com.querydsl.core.types.FactoryExpressionUtils$FactoryExpressionAdapter.newInstance(FactoryExpressionUtils.java:62) ~[querydsl-core-5.0.0.jar!/:na] at com.querydsl.core.support.ConstantHidingExpression.newInstance(ConstantHidingExpression.java:87) ~[querydsl-core-5.0.0.jar!/:na] ...다음과 같은 argument type mismatch에러가 발생합니다. DTO에서 값을 받아와서 생성자에서 데이터 타입을 변경하면 문제가 되는걸까요? 이러한 경우에는 보통 어떻게 조회하는지 궁금합니다!
-
미해결스프링 핵심 원리 - 기본편
섹션 4 <컨테이너에 등록된 모든 빈 조회> 질문
ApplicationContextInfoTest 클래스에서 질문이 있는데요 기존에는 스프링 컨테이너를 생성해주는 코드를ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); 였는데 이번 강의에서는 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); 로 사용하신 거에 대해서 ApplicationContext로 선언했을 때와 AnnotationConfigApplicationContext로 선언한 것의 차이점이 궁금합니다.
-
미해결[리뉴얼] 처음하는 MongoDB(몽고DB) 와 NoSQL(빅데이터) 데이터베이스 부트캠프 [입문부터 활용까지] (업데이트)
db에 이미지 데이터 저장
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 의료영상 데이터 관리를 위해서 db셋업을 해보려고 하는데 이미지데이터같은 경우에는 어떤방식으로 db에 저장을 할수있을까요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
오류관련문의
에뮬레이터에서도 기기에서도 앱이 강제 종료 되며 오류가 납니다. 다음은 앱의 구성 파일입니다 😀(링크로 공유)(참고 : 미완성 파일이지만, 오류가 나서 중간에 올림)(https://www.dropbox.com/scl/fi/1kfq163m0uop1xyhrdudy/listview_ex.zip?rlkey=dz9yhyhrnb6slgyufjl6pam4p&dl=0)
-
미해결김영한의 실전 자바 - 기본편
수강완료 후 스프링 입문
안녕하세요 선생님 java기본 수강을 완료하고 중급과정을 기다리는 학생입니다.출시전까지 스프링 입문 강의를 듣고 공부를 진행하려고 했습니다. 이에 스프링 입문 강의 part2.스프링 웹 개발 기초까지 들었습니다. 그러나 part 3. 회원 관리 예제부터나오는 <>코드 및 람다코드를 직면하여 아 지금은 스프링을 공부할 때가 아닌가하는 생각이 들더라고요책을 구매하고 자바 관련 다른 강의를 조금 더 듣고 스프링 입문을 보면 좋을지, 아니면 현재 몇가지를 찾으면서 해당 강의를 계속해서 듣는게 맞는 것인지 고견을 여쭙고자 질문드리게 되었습니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
VSCode가 아니고 Atom으로 강의 되는건가요
설치는 VSCode를 설명해주셨는데요